Skip to main content

Full text of "TS-2068 Up-date"

See other formats


iy 5 % is ; 
COLT 
UPDATE! Magazine P.O. Box 1095 Peru iN 46970 


S4.50/Issue S1S/VYear October 1994 


* UPBATE COMPUTER SYSTEMS MAGAZTHE * 


UPDATE. COMPUTER SYSTEMS is Edited and Published by Frank and 
Carol is of P.O. Box 1095, Peru, IN 46970 USA. The phone 
nuaber 317-473-8031 for both voice and fax, with normal phone 
hours being between 5 P.M. and 9:30 P.M. Eastern Time during the 
| noon to 6 P.M. on weekends, Please use the answering 

f ve are not home, Most answers to questions left on 
iine will be by mail, long distance charges are too 

for a small magazine. 


ate of the magazine: all issues will be mailed out near 
of the months of October, January, April and July. All 


within the USA are by bulk mail and may take a few 
weeks to reach you at the most. Those wishing to have faster 
service may pay $4 extra for First Class Hail. The present rate 
for North America is $18 in USS, and $22 for the rest of the 
world, Back issues of the magazine are available for $16 per 
year in North America and $18 elsewhere (it is cheaper to mail a 
bunch as opposed to one issue at a time). There are four issues 
to a year, with each year of a subscription starting in October 
and ending with the July issue, at which time your subscription 
renewal is due. Timely renewals are what Keep us in business? 


Assistance in publishing this magazine is provided by you the 
readers, many of whom have contributed often in the way of 
reviews and articles. He offer you our heartfelt thanks. Our 
main assistant locally is longtime friend and colleague, Eliad 
P, Kannun, Poet and Psychologist, as well as Sinclair computer 
user. Kany thanks to our regulars such as Hike Felerski, Bill 
Cable, Peter Hale, Paul Holmgren, Al Feng, Don Lambert, Bob 
Hartung and many others. You are all welcome to submit material 
for inclusien in the magazine. Please make all hard copy 
submissions letter or NLQ; no draft print copies, as we do not 
have much time for re-typing. Send at least two copies hard copy 
and the article or artwork on disk where possible. No audio tape 
submissions, as we do not use tape as a media, please. Try to 
avoid flowery or hard to read fonts...unless you are showing us 
a sample of the output of a progran. If artwork is to be 
included in the article, please let us know in what order you 
think it should be displayed. 


Those wishing to place ads in UPDATE HAGAZINE: We have two ways 
of handling ads. ONE, we will do reciprocal ads for other 
publications (generally on a year for year basis, with you 
sending us a copy of the issues the ad is placed in}. The other 
way is to purchase ad space from us, with the following rates in 
effect for now: $15 per quarter page; $25 per half page; and $40 
per full page ad. This is per issue. For inclusion in all four 
issues, you pay for three issues, in advance, and get the fourth 
ad free, Should you have questions on this please contact Frank 
Davis, by mail or phone as listed above. 


Ke hope ta be of service to you. Thank yout 


UPDATE DIRECTORY FOR OCTOBER 1994 


The computer that an article concerns is marked by using the following 
mark in the first column of the directory: TS= article for the TS2068 or 
Spectrum; QL= article for the QL or QXL; ZX = article for the TS1000, 
ZX81, TS1500; 88= article for the Z88. GI means article of general 
interest. 


Front cover art by Abed Kahale of CATUG, the Chicago Area Timex 
User Group 


Front Covers --Design and Basic Magazine Information 

Page 1--GI--Directory of Issue Contents 

Page 2--GI-Editorial by Frank W. Davis 

Page 3 --TS--LogiCall Review by Abed Kabale 

Page 4--ZX-World Map -Part 2 by Paul Holmgren 

Page 12 --Gl-Mechanical Affinity & Update! Ads 

Page 13 --GI-Modems or Magic by Abed Kahale 

Page 16 --GI- RMG Ad for Rod Gowen 

Page 16 --TS--The Best of the Plotter Ad 

Page 17 -ZX-Serial Printer Output for ZX81/TS 1000 by Bob Berch 

Page 19--TS-How To Build A Larken Dock Board by Les Cottrell 

Page 23 --GI--Wanted/For Sale/or Help Needed Ads 

Page 24-QL-Review of Chris Boutal’s Genealogist 3 by Hugh Howie 

Page 27 --QL-~QLAMBer Update by Al Feng 

Page 28 -QL-T/SNUG QL Public Domain Library 

Page 29 --GI--QBOX USA Ad 

Page 29 -GI-Computer Classics Ad 

Page 30 --QL-~-Cable Column by Bill Cable --Archive Series Part 18: Form 
Ed -- A Form Editor & Printer for Archive Databases (2nd 
and final part) 

Page 36 -QL--Pertinent Points on QL Disk Drives by Frank Davis 

Page 38 --QL--XTricator, Version 1.75 by Gary Norton, a Review 

Page 41 --QL-A Review of je by Eliad P. Wannum (A Financial 
Program for the QL) 

Page 42 --GI--Report on the Dayton Computerfest in August by F. Davis 

Page 43 -QL-QLerk Ad by Wood & Wind Computing 

Page 44 --88--Z88 Flo-Chart by Mike Fink of Domino Cubes 

Page 45 -88-Domino Cubes 288 Ad 

Page 46 --88--Z88 ROM & Internal RAM Upgrade by Dave Bennett 

Page 47 --GI--Timex Publication Index, part 1 by Paul Holmgren 

Back Covers --TS2068 & QL Update Magazine Issue Disks 


THE OCTOBER EDITORIAL 
by Frank W. Davis 


Once again I set fingers to the keyboard. I often realize just how 
much I have come to rely on word processors to do my letters and for 
other text items. It is so much better to see the whole concept and be 
able to change it in a matter of seconds...and to make as many copies of 
it as I wish. For someone who likes to write, this is indeed a minor 
miracle! I do, however, find I do at times go ahead and write letters 
out by long hand, just to keep my handwriting skills from waning. It can 
indeed happen, just as any skill left unpracticed can atrophy with 
little or no use. We have all heard the old saying that "it is just like 
riding a bicycle, you never forget how". Well, how many of you have 
tried to ride a bike lately? I fear that the adequate tennis player that 
I was in my youth is but a memory now. I was today listening to a public 
radio program from Purdue University that was discussing this subject, 
as well as memory and motor skills. It appears that we need to exercise 
as many different skills as we can in order to stay sharp as we age. 
Doing so can indeed make us better at some things than we were in our 
youth, provided we never gave it too much effort in our youth. They 
seemed to feel that the use of things such as bingo and learning 
computers were both excellent for the aging mind. Perhaps all of us are 
getting more out of computers than some realize. 

I have to still admit a special fondness for my Sinclair computers. 

I have had them long enough to feel comfortable and skillful with them. 
It is not that the mere thought of an IBM compatible, or a MacIntosh has 
never crossed my thoughts. The MAC is beyond what I wish to pay for a 
basic skills computer, whereas I find Windows to be a clumsy environment 
to work with and the IBM cannot multi-task in the same manner as a QL. I 
have also been a user of AMIGA computers for years. I find them to be 
excellent, but not as quick as the QL at multi-tasking. They are great 
for graphics and stereo sound (two big weak points on the Sinclairs), 
but they are not easy to program. The TS2068, 288 and the QL are easy to 
program on and almost a breeze to modify programs on. The QL is now 
coming more and more into its own. Those who think no new programs are 
available for the TS2068 are probably not active members of a user 
group, or do not pay close attention to what is written in UPDATE or the 
quarterly put out by TSNUG. To find out about new programs and uses for 
the Z88 you would all do wisely to contact Domino Cubes. Mike has a lot 
of enthusiasm for this machine and can get you pointed towards some 
power processing with this little two pound wonder. 

If you have a TS1000 and are looking for a new peripheral for it 
contact RMG, Mechanical Affinity, or place a WANTED AD here free (for 
subscribers} in UPDATE. If you need to expand your TS2068, do the same, 
or get a disk drive system from John Oliger Company. You can, if skilled 
enough or know someone who is, follow the instructions in this issue and 
build a Larken board for that disk drive setup. For the QL there is so 
much happening that you should call Mechanical Affinity or IQLR (those 
who subscribe or want to only) and find out just what all is new. There 
is the Gold Card, Super Gold Card, two types of hard drive interfaces, 
and a new improved graphics card coming out in about another month. This 
does not even mention all the new software. We are closer to state of 


the art. 


LogiCall Review 


Auxiliary Operating System AOS-LKDOS 


Developer: Bob Swoger 

LogiCall contains all the commands required 
to run LK-DOS (TS-2068 & Spectrum). It 
prompts for a command and executes these 
commands with a minimum of typing. 

Moves from drive to drive with 2 
keystrokes; moves into and out of a word 
processor, database, spreadsheet, terminal 
program and other programs using a few key- 
strokes. Displays word processor files and pic- 
tures on the screen without running any program. 
FORMAT, MOVE, ERASE, CAT, POINT, and 
VERIFY keys all work without the use of the 
“RAND USR 100: or PRINT#4: ” that have to 
be typed using LKDOS alone. It really proves 
itself with multi-drive system and will be of great 
benefit even with a single drive. And, it is not 
memory hungry, it only occupies one disk track. 
It does complete the LarKen Disk Operating 
System. 

LogiCall comes in two versions, 5.0 for all 
including ROMSWITCH and 5.2 for Spectrum 
ROM in the doc port. OUT 244, 3 is not required. 


A complete file management system, more 
accurately a HUMAN INTERFACE (you and 
the machine) shows the years of refinements. 

Holding down the ENTER key (or the ENTER 
and the ‘J’ keys for the RAMDISK) at power up, 
displays the CATalog and the Drive? prompt. 
ENTER the disk drive number or ‘T’ for tape or 
just ENTER to display the Program? prompt. 

ENTERing ‘H’ or ‘?’ at either prompt, 
displays two screens HELP menu. 

ENTERing one of the following at “Program?” 

‘9° displays CATalog. 

‘V’erbose displays the complete CATalog. 

‘Brief displays a CATalog that only shows 
programs that can be LOADed and RUN. 

‘N? at the scroll? displays the Program? 
on CATalogs that scroll off the screen. 

“W’ LOADs word processor (TASWORD 11) 


OSLKDOS ___&y bee Kahne 

*T’erminal LOADs terminal (Mterm 1) program. 

‘5° or ‘8° RENAME “old”, “new”. ENTER the 
old name “NMI-S2.CM” to be renamed, then 
the new “name.B1”. 

‘T’ or ‘E°RASE ~ ERASE “.....”. ENTER the 
filename and extension. 

‘A’dds AUTOSTART to a disk. 

‘Stave SAVEs “L.B1”. 

‘Z’? COPYs to the TS-2040 printer. 

‘C’OPYs to a large printer. 

‘N'EW activates AUTOSTART again. 

‘0’ or ‘F’ormat LOADs FORMAT.B_ 

‘6’ or ‘M’ove LOADs MOVE.BL 

‘R’ VERIFYs for Cyctic Redundancy Check €frors. 

‘K’ SAVEs SCREENS to disk. 

‘Qvuits or ‘E’xists to BASIC where the program 
can be customized. 

‘0, 1, 2, 3 or 4’ moves between drives, 


At the Program? prompt, hitting ENTER 
without typing a filename activates the SCAN 
LOAD mode. The space bar or any key in the 
lower key rows advances a BRIGHT BAR down 
the screen, the top row of keys will send the 
BRIGHT BAR back toward the top. ENTER 


keys do work as normal or without shift. 


ENTERing a name with an extension of 
“C$? at the Program?, LogiCall displays it as a 
SCREENS. While ENTERing a name with an 
extension of ‘Cm’ or ‘CT’, it displays 
MSCRIPT, TASWORD II or SPECTRATERM 
word processor files directly from disk. 


LogiCall disk ensemble includes VUFILE, 
VUCALC, TASWORD I, disk/tape Records 
Base and MTERM II among others. 


It is like an upgrade from a gear-shift to an 
automatic transmission with overdrive. 


LogiCall is available from RMG 
Enterprises and from Mechanical Affinity. 


WORLD MAP 


Part 2 


} routine to scroll screen up, 


to DIRN 


; 


3E67 
327241 


409C 
409E 
and 
40A1 
half 
40A4 
40A6 
and 
40A9 
half 


32BE41 
of map 
3E6F 

327F41 


top 


32CB41 
top of map 
EDSBOC40 
40BO 3A8A40 
40B3 CB4F 
right/left? 
40B5 282C 
right/left 
40B7 CB47 
40B9 3A8940 
map 
40BC 200F 
scroll down 
40BE FE1A 
40CO C8 
40C1 3C 
40C2 212100 
screen line 
40C5 19 
on screen 
40C6 
40C9 
40CB 


40AC 


O1F702 


40CD 
map 
40CF 
40D0 
40D1 
40D4 
on screen 
40D5 54 
40D6 5D 
40D7 012100 
screen line 
40DA ED42 
last line 
40DC 
40DF 
40E1 


O1F702 
EDB8 
1845 


40E3 

40E5 
right or 

40E7 
map 

40EA 201C 
scroll right 


0600 
CB47 
left 
3A8840 


MSCR LD A,67 


LD (4172),A 


LD (41BE),A 


LD A,6F 


LD (417F),A 


LD (41CB),A 


LD DE, (DFIL) 
LD A, (DIRN) 


BIT 1,A 


JR Z LIRT 


BIT 0,A 
LD A,(YPOS) 


JR NZ SCRD 


cP 1A 
RET Z 
INC A 
LD HL,0021 


ADD HL,DE 
LD BC,02F7 
LDIR 
oR NEWY 
SCRD CP 00 
RET Z 
DEC A 
LD HL,0317 
ADD HL,DE 
LD D,H 
LD E,L 
LD BC, 0021 
SBC HL,BC 
LD BC,02F7 
LDDR 
oR NEWY 


LTRT LD B,00 
BIT 0,A 


LD A,( XPOS) 


JR NZ SCRR 


4. 


down, 


right, or left according 


; and fill in the area vacated by scrolling with the map data 


;make instructions at 4171 


7; at 41BD be RRD to access 


smake instructions at 417E 
? at 41CA be RLD to access 
E = address of display file 


D 
A = direction to scroll 
scroll up/down or 


;if bit(1)=0, go scroll 


7scroll up or down? 
7A = y position of window on 
;if bit(1) of DIRN =1, go 


zis window at bottom of map? * 


7if so, return to BASIC 
ryeyed 
;HL = 33d = no. chars in 


7make HL address of 2nd line 


7BC = 759d = 33d * 23d 
scroll screen up 1 line 
7go update YPOS 

7 


icheck if window is at top of 


f so, return to BASIC 
=y-l 

IL = 791d = 24d * 33d - 1 
tmake HL address of last char 


vi 
ry 
7H. 


BC = 33d = no. of chars in 


7HL -> last char on next to 


7BC = 759d = 33d * 23d 
scroll screen down 1 line 
+go update YPOS 


;check whether to scroll 
iget x position of window on 
7if bit(0) of DIRN = 


1, go 


40EC 3C 
40ED FES55 
edge of map) 
40EF 2001 
instruction 
40F1 AF 
edge) 
40F2 328840 
40F5 13 
char on screen 
40F6 62 
40F7 6B 
40F8 23 
40F9 3518 
40FB 
line - 1 
40FD EDBO 
the left 
40FF 23 


4106 1823 
area to fill 


4108 3D 
4109 FEFF 
edge of map 
410B 2002 
instruction 
410D 3E54 
410F 328840 
4112 211703 
4115 19 
right char 
4116 54 
4117 5D 
4118 2B 
char 
4119 
411B OEF1F 
line - 1 
411D EDB8 
right 
411F 2B 
4120 2B 
4121 1B 
4122 1B 
4123 3D 
4124 
4126 1803 
4128 328940 


412B ED4B8840 FFIL 


412F 04 
414C works 
4130 3A8A40 


INC A 
CP 55 


JR NZ 


XOR A 


NWXL LD (XPOS),A 
INC DE 


LD H,D 
LD L,E 
INC HL 
LD A,18 
NXLL LD C,1F 


LDIR 
INC HL 


INC HL 
INC DE 


INC DE 

DEC A 

JR NZ NXLL 
JR FFIL 


SCRR DEC A 
CP FF 


JR NZ 


LD A,54 

NWXR LD (XPOS) ,A 
LD HL,0317 

ADD HL, DE 


LD D,H 
LD E,L 
DEC HL 


LD A,18 
NXLR LD C,1F 


LDDR 


DEC HL 
DEC HL 
DEC DE 
DEC DE 
DEC A 
JR NZ NXLR 
JR FFIL 
NEWY LD (YPOS),A 


INC B 
LD A,(DIRN) 


a 


LD BC, (XPOS) 


px =xtl 
;check if x>85d (past right 
NWXL vif 


not, skip next 


;zero x (make it the left 


7store new x 
ymake DE address of top left 


7HL = DE 
;make HL address of next char 
7make A count 24d times 

7BC = 31d = no. of chars in 


scroll this line 1 char to 
ymove HL past end of line 


;past 1st char in next line 
ymove DE past last char in 


;past end of line char 
;countdown A 
;go do next line if A <> 0 

igo find address of screen 


m=x-1 
;check if x went past left 
NWXR rif not, skip next 
;make x the right edge 
istore new x 
jHL = 791d = 24d * 33d - 1 
;make HL address of bottom 


iDE = HL 
7HL = address of previous 


count for 24d lines 
7BC = 31d = no. of chars in 


scroll this line 1 char to 


;countdown A 

;if A<>0, go do another line 
skip next instruction 
store new y 


B=y; C=x 
7B must be > 0 so DJNZ at 


#get direction 


4133 FE22 

4135 2004 
data 

4137 3E17 

4139 80 
to fill 

413A 47 

413B 21DB42 
= 17200d ~- 85d 

413E 115500 
line 

4141 78 

4142 D61A 
of map 

4144 3805 
instructions 

4146 3C 

4147 47 

4148 CD8B40 
of screen 

414B 19 

414C 10FD 
line y on map 

414E E5 

414F 09 

4150 3A8A40 

4153 CB4F 


vertical or horiz 


4155 282F 


4157 ES 
on map 
4158 2A0C40 
415B 23 
415C CB47 
er down 
415E 2004 
instructions 
4160 11F702 
4163 19 
4164 EB 
DE 
4165 El 
map 
4166 0620 
4168 3E56 
416A OC 
416B B9 
416C 
instructions 
416E El 
line 
416F E5 
4170 AF 
4171 ED67 
half of map 


data into A 
4173 EB 
4174 77 
4175 CBSF 


CP 22 


dR NZ MPST 


LD A,17 
ADD A,B 


LD B,A 
MPST LD HL, 42DB 


LD DE,0055 


#check if down 
;if not, go get start of map 


7A = 17h = 23d 


yadd 23d to y since we need 


; the last screen line 
;HL = start of map data - 55h 


7;DE = 85d = no. chars in map 


LD A,B 
SUB 1A ;check if y is in upper half 
JR C NXLM ;if so, skip next 3 
INC A yadjust y 
LD B,A 
CALL ACCB gain access to bottom half 
NXLM ADD HL,DE sadd 85d 
DINZ NXLM ;loop until HL is address of 
PUSH HL store it 
ADD HL,BC yaad C (get to xth char) 
LD A, (DIRN) iget direction 
BIT 1,A ;check whether scroll is 
JR Z VFIL 


HFIL PUSH HL 


LD HL, (DFIL) 


7go fill a column if vertical 
;store address of start char 


get start of display file 


INC HL ymove past first 118d char 
BIT 0,A ;check whether scroll was up 
JR NZ stTsc 7if down, skip next 2 
LD DE,O2F7 7DE = 23d * 33d 
ADD HL,DE 7get to last line on screen 
STSC EX DE,HL store screen fill address in 
POP HL 7get address of start char on 
LD B,20 7loop counter for 32d chars 
NXTX LD A,56 the right edge 
INC C 7C keeps track of x position 
cP c ;check if x went off the edge 
JR NZ CLAX 7if not, skip next 2 
POP HL iget address of start of map 
PUSH HL rrestore stack size 
CLAX XOR A 7A = 0 
RRD yor RLD if accessing bottom 
; this moves 4 bits from map 
EX DE,HL 7get screen address into HL 
LD (HL),A ;copy map char to screen 


BIT 3,A 


7should it be inverse? 


4177 2804 
instructions 
4179 CBFE 
417B CB9E 
417D EB 
417E ED6F 
half of map 


4180 
4181 
4182 
4184 
4185 
4186 Cl 
4187 
418B 
right or left 
418D 200D 
fill address 
418F 3E1F 
4191 5F 
4192 19 
destination 


CB47 


4193 81 
4194 1E55 
4196 BB 
right edge? 
4197 3803 
instructions 
4199 EDS52 
419B 
scroll 
419C 
419D 
41A0 
41A1 3003 
instructions 
41A3 1E1F 
41A5 19 
line on screen 
41A6 EB 
41A7 El 
41A8 48 
41A9 0618 
down screen 
41AB 180F 
41AD 3E19 
41AF B9 


ED4B8840 


RSMX 


VFIL 


SVMY 


SVSY 


NXxTY 


bottom half of map 


41BO0 200A 
instructions 

41B2 CD8B40 
of map 

41B5 D5 

41B6 114D08 
size of map data 

41B9 ED52 

41BB D1 

41BC AF 


CLAY 


JR 2 RSMX ;if not, skip next 2 
SET 7,(HL) ;make it an inverse char 
RES 3,(HL) 
EX DE,HL ;get map address back into HL 
RLD yor RRD if accessing bottom 
; this restores map data 
INC HL ;move to next map char 
INC DE ;move to next screen position 
DINZ NXTX ;loop for each char 
POP BC ;restore stack 
RET ;back to BASIC 
POP BC 7restore stack 
LD BC,(XPOS) ;B=y, C=x 
BIT 0,A ;check whether scroll was 
JR NZ SVMY if right, go find screen 
LD A,1F ;7A = 31d 
LD E,A iDE = 31d 
ADD HL,DE jadd to map address since 
} is rightmost screen column 
ADD A,C 7A = xX + 31d 
LD E,55 7;DE = 85a 
cP E ;did map address go past 
JR C SVMY ;if not, skip next 2 
SBC HL,DE ymove back 85d chars 
SCF icarry flag remembers a left 
PUSH HL store map address 
LD HL,(DFIL) ;get start of display file 
INC HL 7move past ist 118d char 
JR NC SVSY if scroll was right, skip 2 
LD E,1F 7DE = 31d 
ADD HL,DE ymove to last char on list 
EX DE,HL ;Save screen address in DE 
POP HL iget map address 
LD C,B cay 
LD B,18 jloop counter for 24d chars 
JR CLAY iskip 1st part of loop 
LD A,19 iA = 25d 
cP Cc scheck if y has crossed to 


JR NZ CLAY 
CALL ACCB 


PUSH DE 
LD DE,084D 


SBC HL,DE 
POP DE 
XOR A 


if not, skip the next 5 


igain access to bottom half 


save screen address 
7;DE = 2125d = 25d * 85d = 


jadjust map address 
irestore screen address 
iA = 0 


41BD ED67 
half of map 


data into A 
41BF EB 
41CO 77 
41C1 CBSF 

inverse 
41C3 2804 

instructions 
41C5 CBFE 
41C7 CB9E 
41C9 EB 
41CA ED6F 

half of map 


41CC D5 
41CD 115500 
41D0 19 
41D1 E3 
41D2 1E21 
41D4 19 
41D5 Di 
41D6 EB 
41D7 oc 
41D8 10D3 
41DA C9 


41DB 320D 
variable 
screen: 
line 
41DD 2A1640 
41E0 E5 
41E1 21DB41 
string 
41E4 221640 
41E7 CD1C1i1 
variable 
41EA 23 
41EB 23 
41EC 23 
41ED E3 
address on stack 
41EE 221640 
41F1 2A0C40 
41F4 112300 
41F7 19 
41F8 Dl 
41F9 011F00 
41FC EDBO 
41FE 23 
41FF OE20 
4201 EDBO 
4203 C9 
4204 2A1040 
4207 3E80 
4209 BE 
420A C8 


RRD sor RLD if accessing bottom 


; this moves 4 bits from map 


EX DE,HL get screen address into HL 
LD (HL),A ;copy map char to screen 
BIT 3,A ;check if it should be 
JR Z RSMY ;if not, skip next 2 
SET 7,(HL) ;make it inverse 
RES 3,(HL) 
RSMY EX DE,HL get map address back into HL 
RLD jor RRD if accessing bottom 
; this restores map data 
PUSH DE ;store screen address 
LD DE,0055 7DE = 85d 
ADD HL,DE ;move down 1 map line 
EX (SP) ,HL tget screen address into HL 
LD E,21 ?;DE = 33d 
ADD HL,DE ymove down 1 screen line 
POP DE restore map address 
EX DE,HL jget map address back into HL 
INC C keep track of y position 
DINZ NXTY ;loop for next char 
RET ;back to BASIC 
; 
STRM DEFB 32 OD 7M$, name of M string 


FILM 


LKAG 


; routine to fill the BASIC string M$ with 63d chars from the 


; the last 31 chars from the 2nd line and all 32 from the 3rd 


LD HL,(CHAD) ;get current value of CHAD 


PUSH HL sstore it 

LD HL,STRM ;get address of name of 
LD (CHAD),HL j;put it in CHAD 

CALL 111C ;ROM routine to find a 
INC HL 
INC HL 
INC HL ;get to first char of string 

EX (SP) ,HL ;HL = old CHAD; put M$ 


LD (CHAD),HL ;restore old value of CHAD 
LD HL,(DFIL) j;get start of display file 
LD DE,0023 ?DE = 35a 


ADD HL,DE get to 2nd char of 2nd line 
POP DE iget start of M$ 

LD BC,OO1F 7BC = 31d 

LDIR copy 31d chars 

INC HL 7skip over 118d char 

LD C,20 7BC = 32d 

LDIR ;copy 32d chars 

RET 7back to BASIC 

LD HL,(VARS) ;find G$ in BASIC variables 
LD A,80 ;end of VARS marker 

CP (HL) 

RET Z scouldn’t find GS 


420B 
420D 
420E 
4210 
4212 
4214 
4216 
4218 
421A 
421c 
var 
421F 
4221 
4222 
4224 
4226 
4229 
422A 
422C 
string 
422D 
422E 
422F 
4230 
4231 
4232 
4234 
4235 


3E4C 
BE 
2824 
CB6E 
2818 
CB7E 
280E 
CB76 
2805 
111200 


227B40 
El 

23 
228240 
210000 
228440 
3E00 
328640 
218740 
3600 


MILT 


1LTV 
SKPV 


LD 
cP 
JR 


A,4C 
(HL) 
Z FDIT 


BIT 5,(HL) 


JR 


2 ARST 


BIT 7,(HL) 


JR 


Z LTV 


BIT 6,(HL) 


JR 


Z MILT 


LD DE,0012 


JR 


SKPV 


INC HL 
BIT 7,(HL) 


JR 
LD 


Z MILT 
DE,0006 


ADD HL,DE 


JR 


LKAG 


ARST INC HL 


FDIT 


SETF 


KYLP 


IGN3 


CRON 
SCON 


Lb 


E, (HL) 


INC HL 


LD 


D, (HL) 


INC HL 
ADD HL, DE 


JR 


LKAG 


INC HL 


LD 


E, (HL) 


INC HL 


LD 


D, (HL) 


PUSH HL 
ADD HL,DE 


LD 


(GLST) , HL 


POP HL 
INC HL 


LD 


LD 


(GCUR) , HL 
HL, 0000 
(TIMR) ,HL 
A,00 
(TMR3),A 
HL, ELEN 
(HL) ,00 
HL, FLAG 


SET 0, (HL) 


LD 
LD 


HL, (TIMR) 
DE, 0001 


ADD HL,DE 


LD 
JR 
LD 


(TIMR), HL 
NC IGN3 
A, (TMR3) 


INC A 


LD 
LD 
LD 


(TMR3),A 
HL, (DFCC) 
A, (TIMR) 


BIT 6,A 


JR 
LD 
JR 
LD 


NZ CRON 
(HL) ,00 

SCON 
(HL) , 80 


CALL 02BB 


LD 


B,H 


7G$ marker 

;d0R if G$ found 

if array or string 
;if 1 letter var name 


;if more than 1 letter name 
718 bytes to skip FOR-NEXT 


;loop to find end of var name 
76 bytes to skip number 
yada to find next var 
look again 
;get length of array or 


yadd and get to next var 
;look again 
tget length of GS 


push start of G$ 
;find end of G$ 
7store end 

jpop start 


7store start of G$ 

;zero timer 

+zero 3rd timer byte 
;initialize entry length 


yassume a key is depressed 


sinc. timer 


;no carry?, ignore TMR3 
;if carry then 
zinc TMR3 


get print position 
iget low byte of timer 
7flash cursor by bit 6 


cursor off 

7skip cursor on 
cursor on 

;ROM key scan routine 


427E 
427F 
4280 
4283 
4285 
4287 
4288 
428A 
428C 
428E 
428F 
4291 
4294 
4295 
4297 
4299 
429C 
429E 
429F 
42Al 
42A2 
42A5 
42A7 
42A8 
42AA 
42AB 
42AD 
42AE 
42Bl 
42B4 
42B5 
42B7 
42BA 
42BC 
42BE 
check 
42C0 
42C3 
42C5 
42C7 
42C8 
line 
42CB 
42CC 
42CD 
42CE 
42CF 
42D0 
42D1 
42D2 


2A0E40 
3600 
1857 
SF 
2A2940 


1002 


statement? 


42D4 
42D6 
42D7 
42D8 
42D9 
42DB 
42DC 
42DE 
42E0 
42E2 


RDKY 


NEOL 


GOBK 
ENTR 


VLDK 


NXCH 


CHK= 


LK-, 


CK-, 


LD C,L 


LD E,L ;L=FF if no key pressed 

LD HL,FLAG 

BIT 0, (HL) ;has flag been reset? 

JR Z RDKY ;if so, read key 

INC E jis a key pressed? 

JR NZ KYLP 7JR if old key still pressed 
RES 0,(HL) sready for new key 

JR KYLP sloop for proper key 

INC E ;is a key pressed? 

JR Z KYLP ;if not, loop for key 

CALL 07BD decode BC to find address of 
LD A,(HL) ;character code of key 

CP 77 ;delete key? 

JR NZ ENTR 7no? check for enter key 

LD HL,ELEN ;get address of entry length 
LD A,00 

CP (HL) ;length=0? 

JR Z SETF ;then don’t delete 

DEC (HL) ;dec entry length 

LD HL,(DFCC) ;get print position 

LD (HL) ,00 7erase character 

DEC HL 7move position back 

LD A,76 

CP (HL) ;end of line in display file? 
JR NZ NEOL 

DEC HL ;move past EOL character 


LD (DFCC),HL j;store new print position 
LD HL,(GCUR) ;get current position in G$ 
DEC HL 


LD (HL) ,00 ;erase deleted character 
LD (GCUR),HL ;store new position in G$ 
JR SETF sloop for next key 
CP 76 ;check for enter key 

JR NZ VLDK ;if not, JR to valid key 
LD HL,(DFCC) ;get print position 
LD (HL) ,00 7erase cursor 
JR EXIT 
LD E,A ;store character in E 

LD HL, (NXLN) ;get address of next BASIC 
INC HL 
INC HL 
LD B, (HL) ;7B=length of line 
DEC B 
INC HL 
INC HL 
INC HL 

DINZ CHK= ;nothing left in REM 

JR GOBK ;then go back 
LD D, (HL) get char in REM 
LD A,E get keyed char 
cP D yare they equal? 
JR Z ADDG yyes? then add to G$ 
INC HL 
DINZ CK-, ynothing left in REM? 
JR GOBK yno? then go back 
LD A,16 ;check for - character 
CP (HL) 


42E3 
42E5 
42E7 
42E8 
42E9 
42EB 
42EC 
42EE 
42F0 
42F1 
42F2 
42F4 
42P5 
42F6 
42F8 
42FB 
42FC 
42PF 
4300 
4301 
4302 
4304 
4305 
4307 
4308 
430B 
430E 
430F 
4310 
4311 
4314 
4315 
4319 
431A 
431c 
431E 
4320 
4323 
4324 


23 ENDC 


7E LDCH 


220E40 NT76 
2A8240 

FL 

73 

23 

228240 

2B 

ED4B7B40 

AF 

ED42 

209C 

0600 EXIT 
218740 

4E 

cg 


as AE | 


JR Z ENDC 
LD A,1A 
cP (HL) 
RET NZ 

JR NXCH 
INC HL 
DINZ LDCH 
JR GOBK 


INC (HL) 
LD HL, (DFCC) 
LD (HL),E 
INC HL 

PUSH AF 

LD A,76 

cP (HL) 

JR NZ NT76 
INC HL 

LD (DFCC) ,HL 
LD HL,(GCUR) 
POP AF 

LD (HL),E 
INC HL 

LD (GCUR),HL 
DEC HL 

LD BC, (GLST) 
XOR A 

SBC HL,BC 

JR NZ GOBK 
LD B,00 

LD HL, ELEN 
LD C, (HL) 
RET 


7go get end character 
7check for , character 


ynot - or , so REM invalid 
+go get next char in REM 


ynothing left in REM? 
;no? then go back 

;A=end character 

;CP with keyed character 
zis keyed code too large? 
;A=start character 

7CP with keyed character 
zis keyed code too small? 
;get address of entry length 
yadd 1 

;get print position 
;print keyed character 


;end of line in display file? 
;move past EOL character 

7get current position in G$ 
;put keyed char in G$ 

store new position 

+BC points to last byte in GS 
;clear carry flag 

zany more room in G$? 


syes? then GOBK 


7get address of entry length 
;put length in BC 


DAE} ‘PDATE 


AGAZTINE 


11 


MAGAZINE 


— 


MECHANICAL 


AFFINITY 


Serving ALL QL Users 
Frank bavi Paul Helogren 
513 ast Main St 5231 Kilten Wood Court 
Pere, Indiana 46170 Indianapolis IN, 46254 


317-473-8031 evenings & weekends 


Trung Cards, disk interface for teo 360K o 720K disk dives, @O6K of 
werory and TK, reconditioned for $100, 

Gold Cards 2 drive disk interface, 2 weg wenory,TK2 and 18 negster2 
gee, Ail this for only $230. 

Super Gold Cards, built in 4 drive alaptor disk interface, 68020 
processor, 4 weg of wenory, runs at 24 wegaterz speed, 
tuilt in true parailel printer port (with printer cable) and 
the latest TK2, The price is $488, Contact us about our 
Trump , or Gold Card trade in prograe, 

Sinclair & Printers, black eith @ logo, $ pin printers thet are 
nade to run vith the OL (seriall. Price is $50. 

CUESHELL, the new graphics oriented desktop program for the OL. 

It gives you progran options on the soreen, shich you 
can easily control, change or launch. It is pointer 
environment driven snd wakes full use of level 2 
rivers, Our price is $62. 

Page Designer 3, the Os easiest to use full feetured desk top 
publishing progran, Comes vith toads of fonts and clip 


rans 


APART RRM REARARRIEE 


317-291-6002 evenings & weekends 


art ina 4 disk set, You can even use HOF fonts from 
Digital Precisions Professional Publisher, as well as 
other clip art frow other OL programs. This ad was done 
using PO, Our price is $63, 

Text@7Plust, an excel tent word prooessor thal alloes you to use 
drivers for all the latest printers, gives you aany fonts 
as vell as columns end precise control of paper size «a 
print size. Our price is $120, 

LineDesign Yersion2, 9 top of the line superb vector drawing 
progran package that allons you to wix many! fonts and 
graphics (10 disk set) with your artwork, For $153. 

QL--IDE Hard Drive Interface for only $115. 

Detalesign 3, & fast pointer driven database that is easy to set 
up and use for the QL, The price is $95. 

Gliberator 3.36, compiles virtually al! of SiperBasic, and it is 
easy fo use, with OL and QML, The price is $75, 


CONTACT US FOR ALL YOUR QL NEEDS, WE'LL D0 OUR BEST! 


RIAA AEA UIE TPE 


of publication ! | ! 


We are a large quarterly magazine that is 
produced on Sinclair computers. We cover 

the QL, Z88, TS2068, Spectrum and the 2X81. 
Minimum issue size is 50 pages, and does 
include ads from Sinclair dealers. The price is 
in North America; 
and we do accept the British Pound or the 
German Mark equivalents for a subscription. 


$18 in USS 


Send all funds and requests for a new 


Checks, 


subscription to: 
UPDATE! MAGAZINE 
P.O, BOX 1095 
PERU, IN 46970 USA 


UPDATE! Magazine 


The only known, privately produced 
Sinclair computer magazine that 
covers ALL of the Sinclair computers. 
We are now starting our 8th year 


all 


$22 elsewhere, 


travelers 
checks, cash are 
acceptable. 


MODEMS « Magic 


by EKkled Kakal CATUG-T/SNUG 


My previous article (Modems or Black Magic, 
UPDATE! Jan. 94) discussed the basic elements of 
communications by modem, but there is a lot more of 
this Magic. The field of the Information/ 
Communications Super Highway is very complex and 
new developments appear at fast pace, such as an an- 
nouncement by a company that they are developing a 
direct wire communications system that obsoletes mo- 
dems. With the prevailing use of fiber-optics lines, 
communications will be in the millions of data bits 
transfer rate such as the cable TV system is now. 


Computers —-nor- 
mally process 16 or 32 
bit words of digital in- 
formation on their inter- 
nal data buses. Even the 
computer’s parallel 
printer port offers a data 
path that is 8 bits wide. 
However there is only 
one transmitting wire 
(the other wire is for sig- 
nal return) in a tele- 
phone line. Modems 
must break down 
(Modulate) each digital 
word into a sequence of 
audio signals, and send 
each signal in tum along 
the telephone line. An 
8-bit data word is sent 
as eight |-bit signals. 

Most modems for 
computer communication are asynchronous or unsyn- 
chronized. (synchronous modems are more expensive, 
they require complex circuitry.) Because two commu- 
nicating modems are operating asynchronously, the 
receiving machine must know when a stream of data is 
being sent, where each stream of data starts and ends, 
and whether the stream is correct or not (see the 
previous article), To accomplish this feat, extra bits are 
added to the data to organize it into a standard 
sequence known as a dataframe having a start bit, a 
data bit, a parity bit and a stop bit. 


Port Connections and Signals 

The translation from parallel data words to a serial 
data strearn takes place within the computer's serial port 
circuit in an IC known as a Universal Asynchronous 
Receiver/Transmitter (UART). Logic 1’s and 0's are 
converted into bipolar signals. Logic I's are translated 


to - 5 to - 15 volt levels (mark), and logic 0's are trans- 
lated to + 5 to + 15 volt levels (space). Those bipolar 
signals are supplied to the TX (transmit) pin of a stan- 
dard serial communications port. Those physical con- 
nections are also called RS-232C ports. (RS-232C is a 
standard of the Electronic Industry Association) In 
Europe, the RS-232C standard is called V.24. 

An extemal modem connected to the serial port 
MOdulates the bipolar TX signal into an audio signal 
which is sent over the telephone line. Audio signals 
teceived by the modem and DEModulated into bipolar 
signals are retumed to 
the serial port's RX 
(receive) pin. An inter- 
nal modem is a plug-in 
unit installed inside a 
computer containing a 
serial port. For most 
serial port connections, 
only TX , RX and 
ground wires are 
needed to establish a 
working port. 


Communications 
Software 

All communications 
software must be able 
to operate in two dis- 
tinct modes: the com- 
mand mode, and the 
terminal mode. In the 
command mode, any 
commands issued control either the communications 
software, the host computer, or the modem connected 
to it In the terminal mode, any commands issued are 
sent directly to the modem, or they are sent through the 
modem and to the remote computer modem. 

Typical instructions that might be issued in the 
command mode include retrieving a telephone number 
from a data log, setting the proper communications 
protocol, dialing a number, and saving any data that is 
teceived to a disk. 

In the terminal mode, all keyboard (or disk) input 
is sent directly to the modem. If the modem is off-line 
or not connected to a remote computer modem, the 
input is recognized as modem commands. if the mo- 
dem is on-line and has an active connection to a remote 
computer modem, all inputs are sent through the mo- 
dem to the remote computer unless certain special con- 
trol characters precede the data. 


13 


————— 

The difference between the command mode (in 
which commands are acted on locally) and terminal 
mode (in which commands affect the remote com- 
puter) is probably the most confusing aspect of modem 
communications for beginners. 

One common mistake made by newcomers, for 
example, is to initiate a file UPLOAD in terminal mode 
without issuing a corresponding command in the 
command mode. The first command is required to tell 
the computer to send a file. The second is necessary to 
instruct the host (remote) computer to receive it and 
store it on disk. 


Flow Control 

To control the flow of data between two modems, 
software codes (such as XON and XOFF) are passed 
between them. Communications software intesprets 
such codes and controls modem operation accordingly. 

However, the flow of data between a computer 
and modem is not always controlled by software codes. 
Instead, additional signal lines in an RS-232 port allow 
for hardware flow control (or handshaking). The Re- 
quest To Send (RTS) line tells a modem to prepare to 
receive data from the computer. Once the modem is 
ready to send, it will retum a Clear To Send (CTS) 
signal to the computer. RTS and CTS signals act 
together to handle data transfer 

When the computer is ready for operation (but 
not necessarily ready to send data), it asserts Its Data 
Terminal Ready (DTR) signal. DTR must remain active 
throughout the entire connection time. The modem 
sends a Data Set Ready (DSR) signal to the computer 
after the modem has been activated, and has finished 
self-tests or preparation for connection. The DTR and 
DSR signals establish the connection between modem 
and computer, but they do not control the flow of data 
between the two. 

If @ telephone ring signal is detected at the mo- 
dem, a Ring Indicator (RI) signal is sent to the 
computer. When the modem subsequently picks up 
the ringing line and detects the presence of camer, a 
Data Carrier Detect (DCD) signal is passed to the 
computer. Ring and carrier detect signals invoke the 
communication software to receive communication 
from a distant modem. 


Modulating the Signal 

A modem transmits data by-generating a carrier 
that is then modulated. Several different methods of 
signal modulation have been developed through the 
years to improve the efficiency of data transfers. Of 
course, two modems must be capable of the same 
modulation design for successful communications. 

Two modems that are communicating with each 
other must generate different carrier frequencies. Each 
communication standard defines the transmitting and 


feceiving cartier frequency. For example, for 300 
BAUD communication, one modem must have a 
carrier center frequency of 1170 Hz, and the second 
must have a center frequency of 2125 Hz. By conven- 
tion, the modem initiating the call, or the originate- 
mode modem, has the lower carrier frequency. The 
modem receiving the call, or the answer-mode modem, 
has the higher carrier frequency 

In the early days of modem communication, cach 
transition of the audio carrier signal represented a single 
bit. Each transition is known as a BAUD, so the BAUD 
rate equaled the transmission rate in bits-per-second or 
BPS. Unlike those early modems (like the TS-2050), 
modern modem designs allow two, three, four, or 
more bits to be encoded into every audio signal transi- 
tion (or BAUD). This means that modem throughput 
now equals two, three, or four times the BAUD rate 
being carried on the telephone line. 

For example, a modem operating at 2400 BAUD 
(2400 audio signal transitions per second) can cary 
4800 BPS if two bits are encoded onto every BAUD. 
The same 2400 BAUD modem can carry 9600 BPS if 4 
bits are encoded onto every BAUD. Today, the mo- 
dem’s BAUD rate rarely matches the modem’s bit rate 
in BPS. If the modem were operating at 4800 BAUD 
with 3-bit encoding, it would be transmitting 14,400 
BPS (14.4 KBPS) V.32bis, and so on. 

The concept of encoding is different from data 
compression. Encoding transfers all original data bits 
from one system to another. While data compression 
replaces repeating sequences of bits with much shorter 
bit sequences known as symbols or tokens. Encoding 
designs and data compression are described in more 
detail later in this article. 

Modulation Designs 

All waveforms have three basic characteristics — 
amplitude, frequency, and phase. Each of those charac- 
teristics can be adjusted to represent a bit. 

Frequency-Shift Keying(FSK) is similar To Fre- 
quency Modulation (FM) where only the frequency of 
a carrier is changed, and it is one of the oldest modula- 
tion design still in use. FSK sends a logic | at one 
particular frequency (usually 1750 Hz), and a logic 0 is 
sent at another discrete frequency (often 1080 Hz). 
Frequencies are typically sent at 300 BAUD, and each 
BAUD can carry one bit, so FSK can send 300 BPS. 
This early technique resulted in the classical “BAUD 
equals BPS” which still exists today. Bell 103 was the 
widely accepted modem standard — simple FSK 
modulation at 300 BAUD. This is the only standard in 
which the data rate matches the BAUD rate. 

Phase-Shift Keying (PSK) is a close cousin of 
FSK, but the phase timing of a carrier wave is altered 
while the carrier's frequency stays the same. A logic 1 
or logic 0 is represented by the alteration of the camer's 


14 


phase. Because phase can be shifted in several precise 
increments such as 0°, 90°, 180° and 270°. PSK can 
encode one, two, three, or more bits bit per BAUD. A 
1200-BAUD modem using PSK can transmit 2400 BPS 
over an 1800 Hz carrier. PSK in conjunction with FSK 
can encode even more bits per BAUD. 

In Quadrature-Amplitude Modulation (QAM), 
both the phase and amplitude of the wave are modu- 
lated to encode up to six bits onto every BAUD, al- 
though only four bits are usually reserved for data. 
Most QAM modems have a 1700-Hz or 1800-Hz carrier 
and a base rate of 2400 BAUD, so they can carry up to 
9600 BPS. 

Trellis-Coded Quadrature-Amplitude Modulation 
(TCQAM or TCM) also generates an !800-Hz carrier at 
a 2400-BAUD base rate, but it uses the fill 6-bit encod- 
ing capability of QAM to provide a rate of 14400 BPS. 
TCM is now the most popular modulation design for 
high-performance modems because data can be 
checked on-the-fly with high reliability. 

As the speed increases, line noise becomes very 
critical to communications and error correction be- 
comes vital 


MNP Standards 

The Microcom Networking Protocol (MNP) is a 
complete hierarchy of standards developed during the 
mid 1980s. They were designed to work with other 
modem technologies to provide error correction and 
data compression. Originally developed by Microcom 
Inc., the protocol is now in the public domain. 

MNP provides error control and data compression 
when one modem is communicating with another mo- 
dem that supports MNP. MNP class 4 is specified by 
the ITU (Intemational Telecommunications Union) 
V.42 asa error control design for LAPM (Link 


The Vees — The Most 


Access Procedure for Modems) in the event that V.24 
cannot be invoked. Out of ten MNP levels, most mo- 
dern modems support MNP2 to MNPS. Each MNP 
class has all the features of the previous class plus its 
own. 

MNP class 2: (stream mode): Data is sent in both 
directions at the same time. That results in a speed 
about 84% as fast as data transmissions with no error 
correction. 

MNP class 3: The sending modem strips the start 
and stop bits from a data block before sending it. The 
receiving modem then adds start and stop bits before 
passing the data to the receiving computer. It is about 
8% faster than data transmissions with no error correc- 
tion. 

MNP class 4: A protocol (with some data com- 
pression) that checks telephone connection quality and 
uses adaptive packet assembly. On a noise free line, 
the modem sends larger blocks of data such as 1024 
bytes. If the line is noisy, the modem sends smaller 
blocks of data such as 128 bytes so that less data must 
be resent in the event of an error. 

MNP class 5: Provides data compression by de- 
tecting redundant data and converting it to fewer bits or 
tokens, thus increasing effective data throughput. A 
receiving modem decompresses the data before passing 
it to the receiving computer. MNP5 can speed data 
transmissions by as much as a factor of two compared 
with protocols having no data compression or error 
correction design. 

MNP class 6: Universal link negotiation allows 
modems to obtain maximum performance from a line. 
The modems start at low speeds, then move to higher 
speeds until the best speed that both modems can work 
at is reached. 


Common ITU Standards 


V.17—Descnbes an application-specific modulation design 
for Group 3 fax which provides two-wires half-duplex, 
trellis-coded transmission at 7200, 9600, 12000, and 14400 
BPS. Despite its low number, this is a recently introduced 
standard. 

V.21—Provides the specifications for 300 BPS FSK serial 
modems (based on BELL103). 

V.22-Provides the specifications for 1200 BPS (600 baud) 
PSK modems (based upon BELL212A) 

V.32—Defines the first of the truly modern modems as a 
9600/4800-bps, QAM, full-duplex modem operating at 
2400 baud. This standard also incorporates trellis coding 
and echo cancellation to produce a stable, reliable, high- 
speed modem. 

V.32bis—A fairly new standard extending the V.32 specifi- 
cation to define a 4800/7200/9600/12000/14400 BPS 
TCQAM full-duplex modem operating at 2400 baud. 


Trellis coding, automatic transfer rate negotiation, and 
echo cancellation make this type of modem one of the 
most popular and least expensive for general 
communication. 

V.32fast—The temporary name of a standard that the ITU 
has not yet completed. When finished, it will probably 
replace V.32bis with speeds up to 28,800 BPS. It is 
anticipated that this will be the last analog protocol, even- 
tually giving way to all-digital protocols as local telephone 
systems become entirely digital. 

V.34—The ratified version of V.32fast. It provides for data 
speeds up to 128 KBPS with transmission rates as high as 
3429 BAUD. 

V.42—Defines a two-stage process of detection and 
negotiation for LAPM error control. 

V.42bis—Extends the V.42 standard to include data 

{ compression. 


Reference: Stephen J. Bigelow, Elecironics Now 


15 


RMG 
ENTERPRISES 


Supports 
Sinclair/Timex Users! 


2 Call or FAX for information on 
prices and availability, hardware or 
software 


(= 


You can send a legal and 50¢. 


Request a price sheet or send $4 fora 
GIANT IMPORT GIFT catalog; not 
computer related 


NEW 


The Companion Disk for LarKen 
$9.95 PP. 
We also carry extensive PC shareware. 


Send check or money order to: 
RMG Enterprises 
14784 S QUAIL GROVE CIR 
OREGON CITY OR 97045 
or call and use your VISA or MasterCard 
503 655-7484 (aam-eem Tue-Sat) FAX 503 655-4116 


| IT’S READY! 


CCATS & RMG Enterprises 
| Are Pleased To Announce 


oo leg 
=| 


ZX-81 TS-1000 TS-2068 QL 
Contents are exclusively those developed and 
published by THE PLOTTER authors over 
the past 12 years. 

Price: $14.95 pp. per copy. 


To Order: 
Send vour check or money Order to: 
RMG Enterprises 
14784 S QUAIL GROVE CIR 
OREGON CITY OR 97045 
Call and use your VISA or MasterCard 
503 655-7484 (8AM-6PM Tue-Sat) FAX 503 655-4116 


100 
110 
112 


116 
120 
122 
130 
132 
140 
142 
144 
146 
148 
150 
152 
154 
199 
200 
202 
206 
208 
210 
212 
220 
222 
224 
225 
226 
230 
232 


REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 


ORG OGN 

PIII IOI I HOR ak a 
7* SERIAL PRINTER OUTPT 
as PROGRAM 

7* BOB BERCH 3/83 
GIRO IR a a ak 
JR 50 ; ONE CHAR ~- ZX 
JR 360 ; PRINT Z¢$ 

JR 300 ; COPY 

JR 200 ; LISTING 

JR 210 ; CONT LIST 


}TYPE A CHAR. - ASCII#** 
LD A, (AD1) 
JR 100 


;TYPE A CHARACTER -ZX** 
LD A, (AD1) 

CALL /500 

PUSH AF 

CALL /100 

POP AF 

CP 13 ;TEST FOR C.R. 
RET NZ 

LD HL,4096; PAUSE FOR 
DEC HL; C.R. 

LD A,H 

OR L 

JR NZ,72 

RET 


LD A,13;ONE C.R. 
JR 60 


; 
;MAIN OUTPUT ROUTINE 
LD C,A 

CALL HO2E7 ;SET - FAST 
LD B,11;BIT COUNTER 

JR 130 

RRC C; TEST 

JR C,132 

OUT HFF,A; SPACE BIT 


LD DE,HO190 ;TIME CONST 
DEC DE ; FOR BAUD RATE 
LD A,D 

OR E 

JR NZ,140 

SET 7,C; SET STOP BITS 


IN A,HFE; END BIT 
DJINZ 120 
RET 


; 

;TYPE A LISTING****x4Kx 
CALL /90;ONE C.R. 

LD HL,16509 
LD (AD2),HL 
CALL HOA2A ; 
LD HL, (AD2) 
LD BC,/90;SET RET ADDR 
PUSH BC 
CALL HO745 
POP BC 
LD(AD2),HL 
LD HL, (DFCC) 
DEC HL 


CLS 


7 OUT-LINE 


7 FIND END 


234 
235 
236 
238 
240 
242 
244 
246 
247 
248 
250 
252 
299 
300 
310 
312 
320 
359 
360 
362 
364 
370 
372 
380 
382 
384 
386 
389 
390 
392 
399 
400 
402 
410 
412 
414 
420 
422 
424 
426 
432 
434 
435 
438 
440 
442 
444 
446 
499 
500 
502 
510 
$12 
515 
517 
520 
522 
524 
530 
532 
534 
535 
536 
538 
539 
540 


REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 
REM 


SUB A 

DEC HL 

CP #; “ENGLISH POUND" 
JR Z,235 

INC HL 

LD DE, (DFIL); 
AND A; LENGTH 
SBC HL,DE 
PUSH HL 
POP BC 
CALL /400 
JR 210 


i 


COMPUTE 


7TYPE 


fp COPY *xRKARKKARKK KR RAK 


LD DE, (DFIL) 
LD BC, 726 
JR 400 


f PRINT 2g tik tied terete 


LD HL,/700;POINT TO 
LD (CHAD) ,HL;DATA 
CALL H111C;"GET-VARS" 
RET C;EXIT IF NO Z$ 
INC HL;PICKUP LENGTH 
LD C,#;IN BC 

INC HL 

LD B,# 

INC HL;POINT TO 

PUSH HL;STRING START 
POP DE; IN DE 


;TYPE A STRING*&ke KARE 
}DE=START BC=LENGTH 
LD A,B 

OR C 

RET Z 

PUSH BC 

PUSH DE 

LD A, (DE) 

CALL /54 ;TYPE CHAR 
POP DE 

POP BC 

DEC BC 

INC DE 

CALL HOF46;TEST BREAK 
JR C,400 ;KEY 

RST 8;ERR REPORT 

12; "D" 


; 
:CONV ZX TO ASCII¥**#*% 
;IN + OUT THRU A REG. 
CP 128 

JR NC, 580 

cP 118 

JR 2,590 

SUB 64 

RET NC;CONTROL CHARS 
ADD 64 

CP 28 

JR C,540 

CP 38 

JR C,538 

ADD A,7 ;LETS 

ADD A,20 ;NUMS+LETS 

RET 

AND A 


542 REM JR NZ,550 
543 REM LD A,32 ;SPACE 
545 REM RET 
550 REM CP 11 
552 REM JR NC,560 
553 REM PUSH AF ;GRAPHICS 
554 REM LD A,35 
556 REM CALL /110 
557 REM POP AF 
558 REM ADD A,48 
559 REM RET 
560 REM LD HL,/600 ;SPECIAL 
561 REM SUB 11; CHARS 
562 REM ADD A,L 
563 REM LD L,A 
564 REM JR NC,567 
565 REM INC H 
567 REM LD L,# 
568 REM LD A,L 
569 REM RET 
580 REM SUB 128; INVERSE 
582 REM CALL /500 
584 REM ADD 32 
586 REM RET 
590 REM LD A,13 ;CARG. RET. 
592 REM RET 
599 REM ; 
600 REM ;LOOKUP TABLE FOR CODES 11 TO 27 
610 REM DATA 34,38,36,58,63,40,41,62,60,61,43,45,42,47,59,44,46 
699 REM ; 
700 REM DATA 63,13; "Zz$" 
990 REM END 
1000 LET OGN=32512 
1002 LET DFCC=16398 
1004 LET CHAD=16406 
1006 LET AD1=16417 
1008 LET AD2=16507 
1010 LET DFIL=16396 


QLZX 


The Journal Covering Amateur Radio and Sinclair Computers 
ZX80; Micro-Ace: ZX81; TS1000, 1500, and 2068; QL; Z88 
Alex. F. Burr, K5XY, Publisher 
2025 O'Donnell Drive 
Las Cruces, NM 88001 


HOW TO BUILD A LARKEN DOCK BOARD 
Les Cottrell 108 River Heights Drive Cocoa, FL 32922-6630 


To answer a request for schematics of the LarKen system | carefully examined the 
boards and sketched up what | saw. Peeking under the chips turned out to be more 
difficult than expected so to validate the dock board schematic two working samples were 
made. The first was built on a discarded Zebra spectrum emulator board. (The chip had 
been mounted on the original Larken dock board.) The Larken dock board can be used 
with Aerco, Oliger or Ramex to add a second DOS. 


To use one of the Zebra cartridge boards you must remove all chips, sockets and traces 
except the fingers that go into the 2068. Use an X-Acto knife to remove the traces. This 
is time consuming but the board will be a good fit in the cartridge slot. The locations 
shown in Fig.2 is the layout of the original LarKen. Use a Dremel or small hand drill to 
make the holes required for chip sockets and other components. 


The second one was built on a plug-in perf board with .1 spacing edge-connector, Radio 
Shack P/N 276-192. This part is not listed in the current catalog, but | have found 4 
boards in 2 different stores this past week. The dimensions of the original Larken dock 
board are shown in Fig. 2. This is easier to work with since drilling is not required.(The 
board must be cut out, but the little cutting wheels on a Dremel make this a fun job.) One 
word of warning here - check to see that the card fits and the cartridge door will close by 
temporarily placing a chip and socket in the outermost location. (Lesson learned.) The 
dock area is filled with this circuit so stick close to the locations shown. The transistor 
should lie as flat as possible. 


All chips should be socketed. The sockets can be held in place with a dab of glue. Use 
30-gauge wire-wrap wire for the point to point wiring of the circuit. Follow the schematic 
to make your connections. Start by soldering the wire to the edge connector and then 
routing the wire to the first point, stripping away enough coating to make one loop around 
the leg, soldering that point and moving to the next point. Radio Shack’s 276-1570 Wire- 
wrapping tool has a neat little stripper hidden in the handle that you works well. This step 
involves "worrying" the coating away by back and forth motions and should be done 
carefully. You can also make the loop without any stripping and melt the coating and 
make the solder joint at the same time. Perform a continuity check on a few joints to 
verify your technique if you choose this method. 


Note that A8 and AQ don’t go to the same pin numbers on the RAM and the EPROM. 
They have a check mark on the schematic as a flag. On the units | made | socketed the 
transistor, LED and the big diode using individual sockets call "springs" that a friend gave 
me. These were especially useful for the large diode whose markings | did not recognize. 
| found a diode that looked similar (a 1N4003) and tried it. | found one that worked on 
the first try on unit one, but | had to try several on unit two. 


19 


Larken Cartridge Schematic 


Figure 1 


a 
ww 
wv 
ww 
ov 
ou 
um 
ev 
uw 
lw 
ov 
ow 
ev 
ww 
ov 
sv 
w 
1 -BueyIO HE SL vy! 
tose sop S}-OVSLZAH 297 0% PoMeUl 1 etait 
eee VZzzzNe- 1D U0Le- 28 
Said OM L8H on e'b- He 
00S" LDH UM be Atl zv0"- 6D 
fe Uy 01-98 att r= 29 
%e OM VS" SE “20/0 A OF ‘4H 2Z~ 19 
HSae 
wh 
Le. or 
& 25 2 
Peo rai 
oe ie zo} ‘ww icf ow 
oaun 


You may need to "sharpen" the point on your soldering iron. Where the wires cross they 
have a tendency to fuse together. Use a toothpick to separate them to avoid a “crossed 
wires" problem. Before you install the chips you should verify that all the connections are 
proper using an ohmmeter or continuity tester. After the circuit has been tested and 
works properly carefully coat the wires with clear finger nail polish to coat any bare spots 
and hold the wires apart. 


It is imperative that you use the chips called out on the schematic. Due to differing 
values required to activate "high" and “low" some substitutions with faster chips will not 
work! (Lesson learned. Thanks to Nazir Pashtoon for explaining this.) HCT’s can be used 
where HCTLS's are called for and HM6264P-15 works in the ram spot. The small diodes, 
1N4148’s, should be at least as good as Radio Shack P/N 276-1122. Since the circuit 
is sensitive “bargain diodes" should be avoided. 


Resistors Rt, R3 and Ré4 are 1.8K which is not a standard value found at Radio Shack. 
| bought a package of 100 elsewhere so | have spares! If anyone is serious enough to 
start construction on a home-made dock board send me a SASE and | will send (3) 
1.8K’s and a few of the little “springs”. 


Figures 3 and 4 are a representation of the traces on the Larken board. They are 
included for reference only. My drafting skills seem to fade with each birthday. If | can 
become proficient with the CAD#3 program maybe a useful printed circuit layout could 
come later 


. 3.45 >| 


a BS >| 


ote 
a 


WO0AF SOTN? 


ll 


co S/-TSIISW 


+ 


Lace 


g 6 
| bese a 
8 ats . 
Fieure 2 


21 


Zeer IHeEL C 


el 


WANTED/ FOR SALE/ OR HELP NEEDED 


1) "Do you know of enyone that is using the Timex Disk Drive System (TOS)? I have a Seikosha 
SP-1000AS serial printer. ] can get this to print using MSCRIPT and Vernon Tidwell serial patch 
in text but not graphics. I do not have the owners manual for this $4.00 printer so I do not have the 
print codes." HELP! A.E. Green, 4600 E, Hillsborough Ave, Tampa, FL 33610. 


2) HELP WANTED..." My interestis with the TS1O00 computer.......(a) has anyone come up with 
a battery pack to run the TS1000 away from a source of 110v AC power? My experiment with a 
single 9 volt transistor radio battery did not work, perhaps several of these batteries connected in 
parallel to increase the current available is the answer? (b) Along the same lines, can you suggest 
asmall AC/DC portable TV that can be used in the absence of 110¥ AC power (brand, model ¥, 
screen size, price) that makes a suitable monitor? [ also have a TS2040 printer but no power 
supply, Can you suggest a source? I’m also looking for sources of TS1000 programs on cassette, 
books, magazines, and user group newsletters, can youhelp?” Doug Wagoner, E. 4825 St, 
Anthony Lane, Post Falls, Idaho 83854. 


3) FOR SALE: (a) Fully assembled Hunter Board to provide extra non-volatile memory for the 
2X81 or TS1000, for sale for $30. (b) Memopac 32K ram pack for the 2X81 or TS1000 or TS1500, 
new in box with docs for sale for $20. (c) Two Beeper kits for the TS1000, ZX81 or TS1500 to give 
sound for keypresses for sale for $10 each. (d) Brandnew A & J wafers for the TS1000 model, 
clear, for sale for $2 each, minimum of 3 per order. Send check or cash to Eliad Wannum, c/o 
UPDATE! Magazine, P.O. Box 1095, Peru, IN 46970. 


4) Does anyone still use the Zebra disk system? | just came by two. Les Cottrell, 108 River 
Heights Drive, Cocoa, FL 32922-6630, 


5) FOR SALE: | just got anew IDE drive set up for my QL, so am now looking to sell my 
Falkenberg Hard Drive System. It includes the drive interface board, MFM Omti Controller, either 
a bus driver beard for a Gold Card or one for a Trump Card (let me know which you will be using 
it with) an MFM cable and a hard drive case with power supply. It all works great; itis just that I 
only have so much room, and need to make room for new stuff, while making sure that someone 
can get gocd use out of my used, I am selling ALL OF THIS for the low price of $225. It will easily 
work on any MFM hard drive from 20 upto 416 MEG of memory! This is a great deal for 
someone. Send me either a money order, or I can ship it C.0,D. Eliad Wannum, c/o UPDATE! 
Magazine, P.O. Box 1095, Peru, IN 46970. 


AS ALWAYS ADS OF THE SORT LISTED ABOVE ARE 
FREE FOR SUBSCRIBERS TO UPDATE! MAGAZINE. 
THESE ARE FOR INDIVIDUAL USERS, NOT FOR DEALERS 
TO USE TO ADVERTISE THEIR COMPANIES (FOR THOSE 
PLEASE MAKE ARRANGEMENTS FOR AN AD). 


25 


REVIEW OF Chris Boutal's GENEALOGIST 3 


Page | 


by Hugh Howie 


In a group of people gathered around the 
glowing embers of a fire of a winter 
evening, the talk can touch on many 
things, and invariably someone will say 
something which prompts another to say 
remember-~~" and the talk will often 
turn to reminiscences of a family member, 
relation, or acquaintance, who did this, 
that or something clse, then the tales 
start to flow as to who what where and 
when. And that is where a programme such 
as GENEALOGIST 3 comes into its own. 


This is a programme by Chris Boutal of 
the United Kingdom. Great Britain. 
England, Scotland, Ireland, Wales, cali 
it what you wish. The lands of history 
and legend. The lands of brave Knights 
and Pair Damsels. The lands from where 
so many of us in Canada and the USA came. 
The land which so many still call "HOME" 
But do we really know where we came from? 


We all know some of our ancestors, but 
can we put it together in some order and 
sequence, with the correct dates and 
times and facts? Who married who, and 
who begat who? 


GENEALOGIST 3 is the programme to do this 
for you. All you have to do is provide 

the data and enter it, and the programme 
takes over and does all the work for you. 


Enter names and dates and relationships, 
and before you realise what has happened 
you will be able to see a "Tree" grow 
from almost nothing. 


The system is very comprehensive. All 
your family records, Births, Deaths, 
Marriages, Burials are stored, and can be 
displayed on screen, or sent to the 
printer in many different formats to suit 
your specific requirements. 


GENEALOGIST 3 will keep track of census 
returns and certificates, and any other 
detail you have in mind. It has very 

complete search and indexing facilities. 


You want to know your ancestors? your 
pedigree? Who are the heads of various 
Khere you 


family groups? Who you are? 


came from? No, it will not tell you 
where you are going, that's for you to 
solve, But T can vouch for this, it will 
make you want to KNOW the past! You will 
spend so much time in research into your 
family background, you will leave a lot 
of things unattended. 


From the various Family Groups which you 
assemble as you enter data, a tree can be 
generated, and displayed on screen or 
paper for your perusal and reference. 

You can make amendments to the tree as 
you look at it, they can be made here or 
in the Family Group format. The Tree can 
be sent to the printer and this will give 
you a wonderful display of all the 
Ministers and Rogues and Vagabonds and 
Highwaymen, who are part of your 
heritage. 


GENEALOGIST 3 is for the Pointer 
Environment, but can also be operated 
very efficiently from the keyboard if you 
don't have a mouse. Selection of 
facility can be made by using the arrow 
keys, or by letter selection from the 
menus, or mouse. Very versatile. 


I have had Genealogist version 1 and 
version 2. When Version 3 came along T 
debated whether I needed it, and after a 
lot of poking around in the recessed area 
of the wallet - I came up with a few 
moths and the necessary moolah to 
purchase version 3, and T have not 
regretted it for one instant. 


It would appear that when so much 
keyboard work is required, that the 
constant work of moving a hand from mouse 
to keyboard and back again, would be 
rather tiresome, but this I have found 
not to be the case. When you are 
entering data, you will find that the 
arrow keys are fine and dandy for moving 
around. But when you start to RESEARCH 
the data, looking for cross-references 
etc., does that mouse ever scoot around 
the screen! Definitely - the mouse is a 
great advantage ~ but don't forget, if 
you have no mouse the programme still 
provides all the facilities required, and 
at a goodly speed also. 


REVIEW OF Chris Boutal's GENEALOGIST 3 


Page 2 


by Hugh Howie 


Speed, now that is something else to be 
discussed. The full programme requires 
at least 512 Kb memory, so that lets out 
Microdrive and bare bones QL. With Trump 
Card, you have the extra speed, and also 
the extra memory required. With the Gold 
Card which is what I use, I find that the 
programme is fast enough for me. With 
the Super Gold Card? T am afraid you 
might burn up the sereen with the extra 
speed the Super is reputed to have, 


But then again, we have an author who 
thinks of those with less than the 
epitome of QL's. We have an author who 
thinks of the person who only has the 
basic 128k machine (are there any left?) 
There must be a few somewhere as Chris 
has provided a Budget version of 
GENEALOGIST for those people. And this 
Budget version is on MDV or Disk! You 
want — you got! 


Now say you have been working on an 
Archive based family, and having problems 
transferring it to this new system, then 
for a modest fee (very modest) Chris will 
convert that to GENEALOGIST for you. 


For those who have been using one of the 
earlier versions of GENEALOGIST, the data 
made with those versions will not work 
with Version 3, but once again, all is 
provided for, there is a conversion 
programme provided. And it really does 
work, as I used it myself. 


In the manual there is a tutorial family 
for you to type in, and after following 
the tutorial, you will have no problem in 
getting down to your own task. The 
manual is very well written indeed, with 
easy and clear instructions as to what to 
do, and when. There is an excellent 
"Command Reference" Section, where you 
can see what each command does, and where 
it is called from. Printed on pink paper 
in nice clear distinct black type, it may 
be thought that the pink paper could be a 
bit hard to read, but this is not the 
case, the manual is easy to read, easy to 
follow, and of great precision. 


The programne will take all the data you 
like to enter, from the heads of 


families, which is all that is really 
required, but also all your brothers and 
sisters and aunts and cousins. Just 
about anything you want to put in. 


If you want a screen or paper copy of a 
family tree from the start, or from a 
midway point, to a midway point - that is 
what is available. 


Let me say here and now, when T say you 
can have a copy, I mean that you can have 
a copy ON SCREEN or on PRINTER, so those 
terms are synonymous. When using the 
printer the option of Normal or Condensed 
type is available. 


GENEALOGIST 3 will provide a geographical 
map of occurrences. This is based on the 
grid system in use in British road maps, 
and when IT suggested to Chris that the 
programme was reaching the far corners of 
the earth where that grid system might 
not be in use, and that a Latitude & 
Longitude option be made available, Chris 
agreed and said that he would look into 
this, and perhaps introduce it at a later 
date. But don't let this stop you from 
acquiring the programme. This is an 
enhancement that T do not require, and T 
wonder how many really do. I only 
introduce those comments to show how 
Chris has tried to provide everyone with 
what anyone would like. This "map" 
facility, will even tell you the distance 
between two points when using the grid 
system. 


T almost forgot to tell you that it will 
even provide pictures to go with a Family 
group. Say you a have a picture of your 
old Uncle Ned and Aunt Sarah at Xmas, 

you do have that picture? Then by use of 
a Video camera and a digitiser, you can 
save that picture on disk, and later 
project that picture on screen. There 
are even a couple pictures provided as an 
I can see this programme taking 
Do you 


example, 
the place of slide shows. 
remember them? 


For those interested in Kings and Queens 
of Britain, a Royal Tree is provided, 
just so you see what a tree looks like. 


REVIEW OF Chris Boutal's GENEALOGIST 3 


Page 3 


by Hugh Howie 


Do you want to know who is related to 
whom, and what that relationship is? You 
got it! D'ya really need to know that 
"Jo Blo is the second cousin twice 
removed from Jenny Jewell"? Or that "Dan 
is the great~great-great~grandfather of 
Dave? The cross-reference is there. 

For those occasions when the spelling of 
a surname has been changed over the 
years, that also has been taken care of, 
as multiple spellings are recognised. 


The user is even allowed to make up a 
customised Research Report to suit ones 
own requirements, as before making the 
report, you are allowed to select the 
details (from a list of thirteen) you 
wish to appear in the report, but not 
only that, you are permitted to select 
whether the report should appear in row 
or column format. 


There is even a "Verify" mode provided. 
Say you enter the birth of a parent as 
1900 and the son as being born in 1905, 
this "verify" will tell you "40 and 35 
have an unlikely generation gap". Plus 
many other things. (The programme gives 
each family member its own unique number) 


Much of the data is available for export 
to the Psion suite of programmes. This 
is to enable you to do further processing 
that GENEALOGIST can’t do. For example 
the Pamily Network and Research reports 
can be exported to Archive. Tree data 
can go to Abacus. Place/Time data can be 
exported to Easel. Those same files can 
be imported back into Genealogist from 
Psion. 


The programme comes set up for a red 
screen with white lettering, but if you 
don't like that you are provided with a 
facility to change that to white on black 
or almost any other combination you can 
think of. You make your own colour 
combination choice for any window. 


As I am also writing a lot stuff dealing 
with such things as movements, 
occupations, anecdotes, family histories 
and a whole lot of interesting, and some 
not so interesting facts, that kind of 


stuff, I have GENEALOGIST and 

text®7 plus# running together, this way T 
can quickly switch from one to the other 
as T progress. In fact it is possible to 
have two TREES going at the same time - 
but watch your memory! 


Now to a neat little thing. As the 
programme starts, there is a little 
square clock that comes onto the middle 
of the screen, with real hands! and it 
keeps popping up as you change from one 
facility to another - just to remind you 
of the passage of time! Neat neat neat. 


You don't want to keep a record of your 
family? Then use this programme to keep 
track of those cats and dogs and horses 
you breed, it can be used for just about 
any record of ancestry or breeding you 
wish. 


Now where is this programme available? 
Why, from my old friend:- 


DILWYN JONES COMPUTING 
41 BRO EMRYS, TAL-Y-BONT, BANGOR 
GYNEDD, UNITED KINGDOM, LL57 3YT 


The last price I have is from the 
December 1993 Price List but I would 
advise you to check first, I don't think 
the price has gone up in that time, but 
then the time between writing and 
publication is not always predictable. 


Genealogist 3 (Pointer) £60.00 Disk only 
Genealogist 2 £30.00 Disk only 
Genealogist 1 £19.50 Disk only 
Genealogist Budget £12.00 MDV/Disk 


But if you really are serious about this, 
I would recommend the version 3 (Pointer) 


One final thing which I consider to be 
very important, what happens when you 
have a problem? Why you write to Chris 
Boutal and the answer is on your desk 
before you know it. Service is terrific. 
But then if you have a programme as 
terrific as this, then you would also 
expect the service to be terrific — and 
it is. 

940910 


26 


QLAMBer UPDATE 
by Al Feng 


By the time you read this, the latest "variation" of the QLAMBer 
program should have been out-and-about for several months. 


The good news is that variation 2x001 can automatically identify 

the "_doc" extension of a standard Quill/QLWP file, and produce a 
more easily read HARDCOPY than before. The HARDCOPY output will 

be something like this, but full width, and in the font to which 

your printer is set: 


vrmlgdf0 


& 
H 
page nnn 

followed by your document ... lacking the effects of control co 
des; but, having paragraph breaks, and a Form_Feed at the end of 
the meaningful text. 


This does not replace printing from within Quill/QLWP. It is me 
ant to make the program's HARDCOPY function more useful. 


Note that there is no word-wrap, per se. Words are split if they 
are incomplete before the end of a line, and are finished after 
the carriage return. 


Program LISTings & _lis/_txt files should be SPooLed within 
QLAMBer from a file SAVEd/COPied to RAM1_ (for example). 


Adjust DATASPACE Please 


If you happen to get an "adjust DATASPACE please" message when 
trying to use QLAMBer it probably means that your QL has a GOLD 
CARD (or, faster?) with MINERVA 1.97 (or, higher?) and have 
implemented a "misbehaving" TURBO TOOLKIT (or, the like -- for 
example v3.20) along with pre-emptive TK2_ calls (e.g., SDP_KEY), 
and/or using a statement within a long SuperBASIC BOOT. WHEW! 


The main culprit is apparently the TURBO TOOLKIT in tandem with 
the later MINERVA code(s). I have to find my MINERVA manual/disk 
to verify this, but I was told that there is a substitute TURBO 
TOOLKIT. A temporary fix is to use an older TURBO TOOLKIT (such 
as v2.05), or to simply "EXEC_W flpl_QLAMBer" from the command 
prompt. 


Sorry for this inconvenience. As many of you may know, the 


MINERVA ROM code gets more and more finicky (i.e., less sloppy 
forgiving) as the version number gets higher. 


HAPPY TRAILS, AND COMPUTING, TO YOU 


27 


7 


NUG OL Public Domain Library 


ABAtra_exp Psion’s Abacus file format explained SAVER_LZH Pointer screen saver. Set up as a hotkey 
ANSISR_zip |_ Strips ANSI codes, uses TK2 and QLib SPECKE zip __| 4 graphic files of the Spectrum keyboard 
BASCON_zip | SB Extension for Linking in QJump |_SPECTATR_aip_| Spectator v1.00 - A Spectrum emulator 
L | Configuration Blocks | Unzip30 | v3.0 The Latest One. 
| Co&dl_zip C68 4.12 disk 1. ‘C” Main systemdisk | | | Needed For These Files 
H The "STANDARD for *C’" | 7 UNZIP9_ exe | Unzip program V 0.96. by Jan 
C68d2_ zp | C68 4.12 disk 2.°C* , Extras ete. | Bredenbeek, EXE form (early version) 
| C68d3_zip C68 4.12 disk 3.‘C” Master doc disk-C68 VERS_zp Provides info about other QPTR progs. 
| CFG zip "Place QPTR config. blocks into ‘C' VIEW _LZH Pointer environment utility 
H CHECK _zip |_SB ext. checks for non-numeric INPUT XCHANG_azp Psion’s Xchange v3.90 now PD (Quill, 
| CIRCUIL zip Misc. circuit diagrams and pin-outs I | Archive, Abacus, Easel in one package) 
CRITMS BAS _| Critical Mass Game from 88QL World | | XPR210 zip | Latest file transfer protocols for EM v4.0 
DISKS _txt File on using Teac 2.88Mb disk drives | [XPRLIB zip XPR library for QEM v3.5, for 3.5 & 3.6 
DIEP_zip DeskJet printer utility, prints envelopes 21P22_zip Zip/Unzip version 22 (revised) 
DIWDEM_zip Demo copies; DiscCOVER, MULTI- ZIP30_exe Zip v3.0 (the \“ES\” version) (re revised) 
DiscOVER, TexTIDY & FLPClone j Zip txt Revised Docs on how to use Zip/Unzip 
EMAIL, txt INTERNET, addresses of other QL’ers | | ZIPUTIL_zip Zip Utilities v3.0. Dealing with zip files 
FILEIN_ zip Pointer environment utility ZXTRICA_zip | Xtricatorvl.10 ZX-81 emulator | 
| FNTRC_zip Source files (SB and Metacomco | Spectrum/QL 
H Assembler) FontEditor v.2.3 i 
Fimo Zip aL embieD F wal FidoNet Echo Mail : Related Files for the PC/Clone 
i |_ messages, 8 merged files so far. | LENV_bin ; Code compatible with QXL and SMSQ 
[FONTED ) zip ' FontEditor v.2.3 for the Sinclair QL | | JPP_ap Excellent Spectrum Emulator for 386SX 
HDRRST_BAS _| Restores file header of transferred files L : or greater PC 
HISTDV zip _| Last line recall history device Make C zip | C68 files MAKE & CPC for the QXL 
IBMDSK zip _| Access IBM disks. TK 2 and 3.5 “drives QDIR_zip Looks at QL disk DIRs on a PC 
LHQ zip "[LHQ V1.0, File archiver and extractor QUSCR._zip PC program to view screen files, can 
MAIL zip Mail list program for ARCHIVE (convert to GIF 
minnie_zip File detailing the Minerva ROM 1.93+ QLTOOL ap j Lets a PC look/examine QL disk 
MODPSI zip __| Mods for the PSION suite of software QxLfint zip | For the QXL card. Converts a disk to 
QLGIF_zip | Code/decode GIF. By Carlos Delhez 1993 - DOS format (same as FORMAT?) | 
(QPACER ap | QPac2 8001 Boot Generator v1.1 ZROV201A_zip 17a ot Spenam Emulator V2.01 by 
Point_ziy i as QL FidoNet Echo Point ss 
Paltcoes ap Coeateg LL DOWNPOPUP mecca | 0V2018, ap LATEX and POSTSCRIPT DOC fles for | 
QED zip | QED 1.01 A general purpose editor v2.01 780 Spectrum , 
| QEM zip First? version of QEM For the MAC 
QEM040doc_Zi Doc files for QEM v4.0 CP2MC1 zip Converts text/Quill files to the MAC. 
QEM24_ zp | QEM v2.4 early version of QEM 
QEM35U_rip__| QEM v3.5 upgrade QEM 3.0+ to 3.5 
QEM36U rip | QEM v3.6 upgrade fiom v3.5 Donated to Tf ‘S NUG 
| QEM40_zip QEM v4.0 latest version of QEM? 
| QEMV32_zp | QEM v3.2. Excellent terminal program _, by Paul Ke olmgren 
LHD | ing uj IBM 
i QED _2e anemone ne a OL. pbs H Files were downloaded from various BBS 's 
QLIBRT_ap ; QLiberator runtimes version 3.36 j 
QUSPIT_zip ZM-1 Spectrum Emulator & demo | 
| QSI_zip | Determines speed, QXL, Gold Card Set of 9 5.25” disks. All for $9.00 
| QUADRI zip | Quadratic Equation Plotter Order from: 
| Quantal/2_zip eee BBS Messe BOE Tce | John Donaldson 
Quilt “exp [ Psion’s QUILL file format explained | 835 Foxwood Cir 
(RDS _zip {3 SuperBasic progs rand dot stereograms + 
| RELYQL_txt__| Text describing modifications to the QL_| Geneva IL 60134-1631 
' RESCUE zip | Floppy Disk Rescue 8, String Search ! 708 232-6147 
Ruleta_ap ; Roulette game i 


26 


810-254-9878 


24 hours a day, 300°1200/72400 baud 
(a new high speed modem, up to 14400 baud will be online soon) 


QBox-USA is a BBS set up by GL enthusiasts For QL enthusiasts. 

The sytem runs entirely on a Sinclair QL. We maintain a link (Fidonet> 
with European BBS's that carry QL related message areas. With QBox~USA 
North American QL users can keep in touch with our Fellow QL users in Europe 
and keep up with the latest developments For the QL and QDOS. 

We are currently carrying the Following message areas: 
INTERNATIONAL QL, MINERVA, QUANTA and QBOX. 

There are also File areas that contain many programs available For download. 
Just a few of the Files available are: IPI, QFAX, 2Zip/Unzip, QLTerm, QLGIF 
and many more! There is no charge to use QBox-USA other than normal phone 
call charges. Please give QBox-USA a try! 

We look Forward to your call! 


—_— 


produced using Page Restener 7 | 


HESEEREEE ERTS ER ARE ESSE SESH ESE ESET SEER EERE SEE SETS EEEE SRE SESE SES ESE ESEEE 


COMPUTER CLASSICS 
*#* FOR SALE *#* 


COMPUTER CLASSICS 
RT 1, BOX 117 
CABOOL, MO 65689 
IBM XT COMPUTER $200 +shipping 
Includes 10 MEG hard drive, 640K 
RAM, 360K floppy, serial port and 
parallel port, monochrome monitor, 

and keyboard. 


Repair Service for America’s 
Favorite Home Computers 
and their accessories 


* 

* 
* 

* 
* 
* 
* 
* 
* 

* 
* 
IBM 286 COMPUTER $350 +shipping * 
ADAM ATARI COMMODORE Includes 20 MEG hard drive, 1MB * 
RAM, 1.2MB & 1.44MB floppies, * 
serial & parallel ports, keyboard, * 
* 

* 

* 

* 

* 

+ 

* 

* 

* 

* 

* 

* 


and monochrome monitor. 


IBM OSBORNE SINCLAIR 


TIMEX TI TRS-80 


ee ee ey 


QUAD DENSITY 5 1/4 in. (720K) 
half height floppy drives 
$25 each or 10 for $150 


BUY - SELL - TRADE - UPGRADE 


Write for prices 
SASE appreciated IBM HARD DRIVES, CONTROLLERS, 
and RGB COLOR MONITORS 
Ph. (417) 469 - 4571 Write for prices 
* 


* 
* 
* 
* 
+ 
= 
+ 
* 
* 
* 
* 
* 
* 
* 
s 
* 
* 
* 
* 
* 
* 
* 
* 
' 
* 
+ 
SRST T ESET HASSE EKE SES TEST ETH T ESS SAS SESE SESH LESS SSS KE SKESSAH EASA ELE TED 


CABLE COLUMN 
By Bill Cable 


ARCHIVE SERIES 
PART 18 : FormEd - A FORM EDITOR AND PRINTER FOR 
ARCHIVE DATABASES (2nd and final part) 


FormEd as listed last time worked well for displays but the printing 
part had not yet been completed This time we will list the complete 
program including what was listed last time This has been a rather 
involved project but | am pleased with the result. It can nicely display 
and print any ARCHIVE Database in many different and useful ways 
The user interface is easy to use and different print fonts are 
supported (Bold, Condensed, Italic, Underline, Double Wide). Epson 
print controls are used. If they don't work for you get out your printer 
manual and alter procedure 'set_fonts’ so they do. The procedures 


proc closey:!$ 

close {$ 

endproc 

proc close_all 

while 1 close endwhile 

endproc 

proc formed 

rem Written by Bill Cable 6/94 and released to public domain 
error form_check. if ermum()formed1 else :formed3 endif 
endproc 

proc formed1 

mode O'setup: error close_all:set_fonts 


listed here need to be merged with the group3 procedures finished in 
Part 14 of this series. Notice that procedure ‘close_all’ in group3 is 
incorrect, The one listed here is correct Correct it in group3 
procedures or it will replace the correct one when you merge the 
group3 procedures in. Those wishing to skip all the work send me a 
disk and retum postage and | will send you a copy of Formed. 


Forms can be designed on screen for any ARCHIVE database for 
browsing and printing and saved for later use. Its primary purpose 
will be for printing out the forms or reports to your printer such as 
address labels from an address database or financial summaries 
from a financial database. It is slow at least if you don’t have a Gold 
Card or better but handy Get into the ARCHIVE editor and start at it 
When done merge the group3_prg procedures and save as ‘formed’ 
To run simply load into ARCHIVE and type - formed<ENTER>. Play 
to feam allits features and uses. Itis quite flexible 


fet h$="FormEd - A Form Editor, Creater, and Printer for ARCHIVE Databases" 


heady;h$: spoolon screen :form_instruct: spooloff 

yom,21,"Print these instructions" if ans$="y" 

Iprint hS: Iprint tab 55,"Bill Cable 9/94”: Iprint :form_instruct: endif 
device;21 
if ans$="": error close. 
error looky,fdS+fn$+"1","11" 

if ermum(): if ermum()<>100:erry:23,"accessing "+fd$+fn$+"1": endif 
yom;23,"Create form databases on "+fd$+" now": if ans$ 
else : error form_create: if ermum() eny:23."making “+fd$+fn$+"1" 
formed: retum: endif: endif 

fooky:fdS+fn$+"1"."f1" endif 

error looky;fd$+fn$+"2","12": if ermum():ery:23,"accessing "+id$+in$+'2" 
acky.23,"You must fix":formed: retum endif :formed2 

endproc 

proc formed2 

heady,"FormEd - Choosing a Form”. use "{1": if count()>0 

yom;4,"Print list of currently defined forms in "+fd$+" Form File now" 
y"form_print1: endif . endif . error closey;"s" 

: while len(ans$)<1 or len(ans$)>8. 

jame of form [1-8 characters or <ENTER>=quit]" 

" error close_all: mode 1: stop : endif endwhile 

let form$=ans$: use "f1" locate form$: if form_name$<>form$ 
yom.8,"Form "+form$+" not defined. Add it now" 

if ans$="n":formed2: retum 


ifans$: 


“Location of form databases (form_fm1,form_fm2) eXit to stop" 
il: mode 1: stop : endif : let fd$=ans$: let fn$="form_fm" 


“formed: retum 


else form_new: close "f1" looky:faS+in$+''1",“f1"" locate forms: endif: endif 


let sd$=dbf_loc$: let sn$=dbf_name$: fet ans=1: while ans and sn$<>"" 
error looky;sd$+sn$,"s" let ans=ermum() 

if ermum():erry,10,"Problem accessing "+sd$+sn$ 

yom; 11,"Change device or name": if ans$="n":formed2. retum : endif 
“Database” let sd$=ans$ 


yor, 20. "Print list of fields of "+sd$+sn$+" used in "+form$+" now" 
if ans$="y"form_print2: endif -formed3 

encproc 

proc formed3 

mode 0: let fig=1 form_dispiay 

while 1° print at 0,3,upper(form$)," form using “.sd$+sn$ 


latabase name (with extension)" sn$: let snS=ans$: endif endwhile 


print “ with ".count("s’);" selected”; tab 57; 

key_choice,23," FORMED MENU "."","Edit Print Browse Select/order eXit',"epbsx" 
if ans$="x":yom;23,"Work with another form": if ans$="y":formed2: retum 

else : error close_all: mode 1: stop: endif 

else : if ans$="e"-form_edit;1,high,1,1,wide,1:form_display 

else : ifans$="p"-form_print 

else : if ans$="b" form_browse 

else : if ans$="s". use “s": mode 1. cls ; print 

print "FormEd is halted. Type desired ARCHIVE Select, Order, or Reset Command" 
print "Then type : formed<ENTER? to restart” let flg=0: 
endif : endif: endif : endif: endif : endwhile 

endproc 

proc form_browse 

local a$,f3,i: while 1: use “s" 

key_choice;23," BROWSE ",","Next Back Scan Rec# Find More Print exit","nbsrfmpx" 
use “f1": retum : endif : let aS=ans$ 

if a$="n": next: eise : if a$="b": back 

else : ifa$="s".msg;23,"Scan by Browsing through 10 records" 

let i= 1: while i<10 and not eof(): next :form_fvshow1;"": use “s”: let i=i+1: endwhile : next 
else : if a$="r':inpy;23,"Move to record {0-"+str(count("s")-1,2,0)+"]" 

position vai(ans$): else : if a$="f":inpy:23,"Enter text to find": let S$=ans$ 

msg;23,"finding “+f+"": find 

else : if aS="m":msg;23,"more finding "+f$+"": continue 

if not found{) acky;23,"More “+f$+" not found": endif 

else : if a$="p" form_print 

endif : endif . endif : endif: endif : endif : endif :form_fvshow1;™: endwhile 

endproc 

proc form_check 

use “s" 

endproc 

proc form_color;!,i$ 

ice,|,""," for “+i$+" color’,"[Black, Red, Green, White]","brgw" 

let ans$="Black - 1": else : if ans$="r": let ans$="Red_ - 3" 


else : if ans$="g" let ans$="Green - 5" 
eise ; let ans$="White - 7". endif : endif : endif 
endproc 


proc form_create 

msg;23,"creating form file 1 : “+fd$+fn$+"1" 
create fd$+in$+"1" logical "f1" 
form_name$ 

form_desc$ 

form_paperS 

form_ink$ 

form_height 

form_width 

form_line 

form_text$ 

form_font$ 

dbf_locs 

dbf_name$ 

dbf_desc$ 

endcreate 

order form_name$;a,form_line;a: close fi" 
msg;23,"creating form file 2 : "+fd$+fn$+"2" 
create fd$+fn$+"2" logical “f2" 

field_form$ 

field_line 

field_column 

field_name$ 

field_number 

field_start 

field_width 

field_formatS 

field_join 

field_joinS 

endcreate 

order field_form$;a, field_line;a,fietd_column;a: close "{2" 
endproc 

Proc form_display 


use "fi": locate form$: let wide=form_width: let high=form_height 

let tos=int((21-high)/2): let cos=int((79-wide)/2) 

let fp=val(form_paper$(9)): let fi=val(form_ink$(9)) 

if fp=1: let dp=3: let di=7: else : let dp=1: let di=7: endif 

paper dp: ink di: cls : fet k=form_width 

let i=1: while ishigh+1: locate form$,i 

print at i+los,1+co8; paper fp; ink fiform_textS, 

let iti+ 4: endwhile -form_fvshow1,"" 

endproc 

proc form_edit;si,n!,al,sc,nc,ac 

local IIc i$,ij,«i3. 

close “f1": open fd$+fn$+"1" logical "{1" locate form$.1 

close "f2"; open fd$+fn$+"2" logical "{2": locate form$,1,1: use “f1" 

if sl>22: let sl=22: endif: if nl>22-sl: let nt=22-s!: endif 

if sc>79: let sc=79: endif : ifnc>79-sc: let nc=79-sc: endif 

let n=si+nI-1: if al<s! or al>ni: let al=s!; endif 

let nc=sctnc-1: if ac<sc or ac>ne: let ac=sc: endif 

let li=al+los: let lc=act+cos 

while 1: use “f1": locate form$,al 

print at 23,1;"EDIT FORM - Move and type text, <CTRL>1 Field, <CTRL>2 Font, <CTRL>0 Exit", 
print tab 80; at 0,68;"[".al:",",ac,"] (":form_font$(ac to ac):")"; tab 79, 

print paper fp; ink fi, at al+los,actcos,chr(14); 

let iS=getkey(): let =cade(i$) 

if i=144: close "f1": close "f2":looky;fd$+fn$+"1","f1" 

looky:fd$+fn$+"2","{2": use "f1": retum : endif 

if i<>145 and i<>146 

if =10 or i= 11: let j=3: else : if =12 or =13: let j=10 

else : let j=1: endif: endif 

if i=2 or i=10: let al=al-: if al<si: let alent: endif 

alse : if i=3 or i=11: let I+j: if al>nl: tet al=si: endif 

else: if =4 or i=12: let c+: if ac>nc: let ac=se: endif 

else ‘5 or i= 13: let ac=ac-: if ac<sc: let ac=nc: endif 

endif: endif : endif: endif 

if >31 and i<127: print paper fp, ink fi, at altlos,ac+cos;i$, 

locate form$,al: let [$="*"+form_text5+"*" 

let [$=]$(1 to ac)+i$+j$(ac+2 to len($)) 

let form_text$=j$(2 to ten(j$)-1): update 

let ac=act1: if ac>nc: let ac=sc: endif: endif 

if Il<>al or Ic<>ac: let ll=al: let Ic=ac: endif 

else : if =146 

key_choice:23," SET FONT".."Normal Bold Itallic Underline Wide Condensed”,"nbiuwc" 
let jS=upper(ans$):defy.23,"Font Width [1 to "+str(nc-ac+1 ,2,0)+']'str(nc-ac+1,2,0) 

let ans=val(ans$): if ans<1 or ans>nc-ac+1: let ans=1: endif 

let i$=form_font$: if ac>1: let k$=i$(1 to ac-1): else ; let kS="": endif 

let form_font$=k$+rept($,ans) 

let i=len(form_fontS) 

if i<len(i$): let form_font$=form_font$+i$(i+1 to nc) 

endif : update : else 

key_choice;23,”" FIELD EDIT",""","Add Remove Show List eXit","arsix" 

if sn$<>"" and ans$<>"x": if ans! ":form_fadd,al,ac,ne 

else : if ans$="r": use "f2": locate form$,al,ac 

if field_form$=form$ and field_line=al and field_column=: 
yorn:23,"Remove "+field_name$+" from specifed posi if ans$="y" 
print at al+los,actcos; paper fp, ink firept(" " field_width);: delete : endif 
else ‘acky;23,"No field value starts at current cursor position”. endif 
else : if ans$="I":yorn;23,"Listout fields on form to printer now" 

if ans$="y".form_print3: endif 

else :form_fvshow1 ;chr(5):acky:23,"Showing field widths by underline" 
endif: endif: endif: endif: endif _ endif : endwhile 

endproc 

proc form_fadd;al,ac,nc 

use "f2": let fleld_form$=form$:form_fpick 

let field_name$=fieldn(field_number,"s") 

let field_line=al: let field_column=ac 

defy;23,"Start at field charcter’,"1". let ans=val(ans$) 

if ans<1 or ans>255: let ans=1. endif: let field_start=ans 
defy,23,"Field width" str(nc-ac+ 12,0): let ans=val(ans$) 

if ans<1 or ans>nc-ac+1: let ans=nc-ac: endif: let field_width=ans 
if fieldt(field_number,"s") 


key_choice,23,"","Field format’,"Normal Upper Lower’,"nul” 
else key_choice,23,","Field format’,"General Decimal(2) Integer',“gdi" 

endif. let fieid_format$=upper(ans$) 

yom:23 "Wil this field be joined with a field following it’ 

i let field_join=1 

inpy.23,"Joining symbol(s) (ie.'' or’,’ or '/’,<ENTER> = none)" 

fet field_join$=ans$. else : let field_join=0: let field_join$="": endif 

yom,23,"Add "+field_name$+” now”: if ans$="y": append 

if field_join print at 22,1;"Joins “:field_name$; tab 79, 

form_fadd,al.ac,nc: return : endif 

locate formS,al,ac:form_fvshow2;":form_fvshow3;"": endif ‘liny;22: use ‘f1" 
endproc 

proc form_fpick 

while 1 inpy,23,"Field of interest [0-"+str(numfid("s")-1,2,0)+"]" 

let ans=val(ans$): if ans<0 or ans>numfid("s")-1: let ans=0: endif 

let field_number=ans:yom:23 fieldn(ans,"s") 

if ans$="y" retum : endif : endwhile 

endproc 

proc form_fvshow4 ;u$ 

print at 0,57,"at Rec# ";recnum("s"), tab 79; 

use “f2 locate form$: while not eof{) and field_form$=form$. 
form_fvshow2,"":form_fvshow3,u$: next: endwhile : use “f1" 

endproc 

proc form_fyshow2;!$ 

focal i,j,k,!,c,|s,fs,fw: let =field_line: let c=field_column 

let ans=field_number. if fieldt(ans,"s") 

let ans$=fieldv(ans,"s"): if field_format$="U": let ans$=upper(ans$) 

else : if field_formats: let ans$=lower({ans$): endif : endif 

else : if field_format$="G": let ans$=str(fieldv(ans,"s"),4,0) 

else: if field_format$="D": let ans$=str(fieldvians,"s”),0,2) 

else ; let ans$=str(fieldv(ans,"s’),2,0): endif : endif : endif 

let Is=len(ans$): let fs=field_start: let fw=field_widtn 

if fs>1: if Is<fs: let ans$="": else : let ans$=ans$(fs to Is): endif : endif 

if len(ans$)>fw: let ans$=ans$(1 to fw): endif : let ans$=I$+ans$ 

if field_join let ans$=ans$+field_join$. next 

if =field_line and c=field_column and not eof():form_fvshow2;ans$: retum 

else back endif: endif 

if len(ans$)>wide: let ans$=ans$(1 to wide): endif 

endproc 

proc form_fvshow3;u$. 

local I,c,w,s: let l=field_line: let c=field_column: let w=field_width 

if len(ans$)>w. let ans$=ans$(1 to w): endif 

print at I+los,c+cos; paper fp; ink fi;u$;ans$, tab cos+w+c;u$ 

endproc 

proc form_instruct 

Iprint" 1. This program allows you to create forms that incorporate your own" 
Iprint” databases. Good for printing them in a structured way or as labels." 
Iprint " 2. Two databases (form_fm1 & fotm_fm2) hold form information. If they” 
iprint" don't exist already the will be created. Please back them up.” 

Iprint" 3. The database you use on a form will be accessed for read only. Using" 
iprint” the form display you can browse or print it as selected/ordered.” 

Iprint “ 4, Each form has an identifying name (1-8 characters) and is saved for" 
Iprint" later access. The form is Edited on screen by typing text at the” 

Iprint" cusor position with curosr coordinates shown in [] in upper right." 

Iprint "5. <CTRL>1 when editing allows Adding and Removing Fields at cursor." 
Iprint “ 6. <CTRL>2 when editing to define Print Fonts for areas on form. Upper" 
Iprint" night of screen show Font at cursor. Normal, Bold, Itallic, Underline" 
Iprint" Wide,and Condensed possible. For non Epson change procedure set_fonts.” 
Iprint" 7. To do the ordering and selecting of your database the program is" 
iprint" halted so you can type in the Select, Order, or Reset command at" 
Iprint" the ARCHIVE prompt >’ and then restarted by : formed<ENTER>." 
endproc 

proc form_new 

close "f1". error openy;fd$+fn$+"1",'f1" 
Jet form_in let form_text$="": let form_font$: 
while 1:heady;"Adding New form : "+form$: let form_name$=form$ 
print at 3.1,"Form information" 

inpy.5,"Form description”: let form_desc$=ans$ 
form_color,6,"Form paper’ let form_paper$=ans$ 


print at 6,0," Form paper color : ";ans$; tab 80;: let form_ink$=ans$ 
while form_paper$=form_ink$:form_color;7,"Form ink" 
let form_ink$=ans$: endwhile 
print at 7,0;" Form ink color ins$; tab 60; 
defy;8,"Form width (10-78)","78": let ans=val(ans$) 
if ans<10: let ans=10: endif: if ans>78: let ans=78: endif 
let form_width=ans: print at 8,0:" Form width : “ans; tab 80 
defy,9,"Form height (1-20)","20" let ans=val(ans$) 
if ans<1. let ans=1: endif : if ans>20: let ans=20: endif 
let form_height=ans: print at 9,0," Form Height: “.ans, tab 80. 
ise information from a database on this form" 
y": print at 12,1;"Database information”; tab 80; 
device; 14,"Location of database to be used in form" 
let dbf_loc$=ans$: print at 14,0;" Database location 
inpy;15,"Name of database to be used in form" 
*"): let ans$=ans$+"_dbf” endif 
let dbf_name$=ans$: print at 15,1;"Database name : ",ans$; tab 80; 
inpy:16,"Description of database": let dbf_desc$=ans$: endif 
yorn;23,"Add form now" if ans$="y": append 
i=1: let j=form_height 
"Jet form_paper$="" let form_ink$="" 
let dbf_loc$="". let dbf_name$: f_< 
while i<=j: let form_line=i: let form_text$=rept(" "form_width) 
let form_font$=rept("N" form_width) 
append : let i=i+1: endwhile : retum ; endif 
yom;23,"Still want to add a "+form$+" form’. if ans$="n": retum : endif 
cls : endwhile 
endproc 
proc form_print 
local i$ j$,h1$,h2$, br.eripp,fpp,norm$,bar$,bp.tp, atline,formct,pg$,nl: use "s” 
let bp=recnum(): let norm$=rept("N" wide): let bar$=rept(’-", wide): let ni=high: let ffp=0 
let i$=str(count()-1 2,0): let j$=str(recnum(),2,0)iny;23 
defy;22,"Begin print at record [0-"+i$+"]" jS: let br=val(ans$) 
if br<0: let br=0: endif : if br>count()-1: let b=count(}-1: endif 
if br>recnum(): let j$=str(br,2,0): endif 
defy;23,"End print at record ["+str(br,2,0)+"-"+i$+'}" J: tet er=val(ans$) 
if er<br: let ebr. endif : if er>count()-1: let er=count()-1: endif 
let pg$="n": let h1$="": let h25="": let lpp=0 
if br<>erliny;23:yorn;22,"Print heading for the "+str(er-br+1,2,0)+" records”: if ans$="y" 
print at 23,1;"=> ";: input h1$:liny;23: print at 23,1;"=> ";: input h2$: endif 
if hi$<>"" let tp=2: if h2$<>"": let tp=4: endif : endif 
liny;23:yom;23,"Fit forms on a page": let pgS=anss: if pgS="y" 
defy:23,"Lines per page ['+st(nl,2,0)+"-200","66": let Ipp=val(ans$) 
if Ipp<ni: let Ipp=ni: endif : if lpp>200: Jet Ipp=200: endif 
let fpp=int((ipp-tp)/nl) 
if fpp>1:defy:23,"Form per page [1-"+str(fpp,2,0)+'T"str(fpp,2,0) 
let fpp=int(val(ans$)): if fpp<1 or fpp>(Ipp-tp)M!: let fpp=int((Ipp-tp)/nl): endif 
endif : endif : endif 
if er<>br and tpp 
‘Page length = "+str(lpp,2,0)+" , Heading = "+str(tp,2,0)+", Forms per page = "+str(fpp.2,0) 
S retum : endif : endif 
use "f1": locate form$: next 
fet atline=tp+1: let formct=1 
rinting”: let in=len(form_textS): let blk$=rept(’ ",In) 
Iprint h1: if tp=4: Iprint : tprint h2$: endif : Iprint bar$: endif 
use "s": position br: while recnum("s")<=er and not eof("s’) 
use "f1": locate form$: next : while not eof() and form_name$=form$ 
let |$=form_text$: let f$=form_font$: let =form_line: use 12": locate form$,| 
let ans$=": while not eof() and field_form$=form$ and field_line=I 
let fl=field_line: let fe=field_column 
if fc>len(ans$)+1: let an: ins$+$(len(ans$}+1 to fc-1): endif 
form_fvshow2,ans$: next : endwhile 
if len(ans$)<len(I$): let ans$=ans$+l$(len(ans$)+1 to len(i$)): endif 
2: let sf$="": let ef$="": let HS=f1 .form_font$(1) 
"let sfS=bolds$: let ef$=boldes 
let sf$=conds$: let ef$=conde$ 
is$: let efS=italeS 
unders$: let ef$=undereS 
"W" let sfS=wides$: let ef$=wideeS 


ins$, tab 80; 


endif : endif: endif _ endif : endif 

: while i<=In. 

i=1 and (ans$=bik$ or {1 form_font$=norm$). let i=len(ans$) 
else «if f$<>f1 form_fontS(i): let iS=f1 form_font$(i) 

3 =" et S="N" 

let nsf$=bolds$: let nef$=bolde$: tet If$="B" 

"C" let nsf$=conds$ let nef$=conde$: let f$="C" 
let nsf$=itals$ let nef$=itale$. let fS="I" 
undersS. let nef$=undereS. let f$ 
else . if $="W" let nsiS=wides$ tet nef$=widee$. let IfS= 
endif. endif: endif endif endif 

Iprint sf$+ans$(\p-1 to i-1).efS,. let sfS=nsfS. let efS=nefS: let Ip=i+1 
endif : endif: let =i+1: endwhile 

if Ip<=in: Iprint sf$;ans$(ip-1 to In); endif: Iprint ef: let efS="": let IfS: 
use "f1": next : endwhile : use "s" next. let atline=atine+high 

if pg$="y’: if formct>=fpp: let i=atline: while i<=Ipp: Iprint : let =i 1. endwhile 

if tp and recnum()<=er and not eof() 

(print h1$: if tp=4: Iprint : print h2$: endif : Iprint bar$: endif: let formct=1. let atline=tp+1 
else : let formct=formct+1: endif : endif 

endwhile : use "s": position bp: use “f1" 

endproc 

proc form_print1 

msg;23,"Printing listing of defined forms" 

Iprint : Iprint "FORMS DEFINED IN FILES form_fm1 AND form_fm2 ON “fd$ 

Iprint tab 60;date(2) 

Iprint : Iprint : search form_line=0 

while found(): Iprint "Form name : ",upper(form_name$) 

Iprint " Description : ";form_desc$ 

Iprint" Form paper m_papers; tab 30,"Form ink : ";form_ink$ 

iprint" Form length : “.form_height; tab 30;"Form Height :".form_width 

if dbf_name$<>"" Iprint" User database : "dbf_loc$;dbf_name$ 

Iprint” Database desc : ",dbf_desc$: endif 

Iprint : iprint ; continue : endwhile ‘liny,23. 

endproc 

proc form_print2 

msg;23,"Printing listing of "+sd$+sn$+" field names" 

Iprint : Iprint "FIELDS OF DATABASE ";sd$;sn$;" USEABLE IN FORM “.upper(form$) 
Iprint tab 60;date(2) 

Iprint : let =O 

while i<numfid(): Iprint i; tab 5:fieldn(i,"s"): let =i#1: endwhile sliny,23 

endproc 

proc form_print3 

msg;23,"Printing fields on form "+form$. 

Iprint : Iprint "FIELDS OF "+sn$+" DEFINED ON FORM - “tupper(form$) 

Iprint tab 60;date(2) 

Iprint : print : use “f2": locate form. 

Iprint "Line/Column Name Start Width Format Join Symbol" 

while field_form$=form$ and not eof(): Iprint 

Iprint "[':fieid_line;",":field_cotumn;'}"; 

Iprint tab 15;field_name$; tab 30;field_start; tab 40;field_width; 

Iprint tab 50;field_formats; tab 58;field_join; tab 64;"";field_join$;"" 

Iprint : next : endwhile ‘liny;23 

endproc 

proc openy;d$,!$ 

msg;:23,"open access of “+d$: open d$ logical I$ 

endproc 

proc set_fonts 

let pe$=chr(0)+chr(27) 

let bolds$=pc$+chr(69): let bolde$=pc$+chr(70) 

let conds$=chr(0)+chr(15): let conde$=chr{0}+chr(18) 

let itals$=pc$+chr(52): let itale$=pc$+chr(53) 

fet unders$=pc$+chr(45)+chr(0)+chr( 1): let undere$=pc$+chn45)+chr(0)+chr(0) 

let wides$=pce$+chr(87)+chr{0)+chr( 1): let widee$=pe$+chr(87)+chr(0)+chr(0) 
endproc 


Next time some new project | haven't yet thought of. Any suggestions? Until then Happy Archiving! 


35 


PERTINENT POINTS ON QL DISK DRIVES 
by Frank W. Davis 


| have recently ran across some items that | thought it best to 
pass on to the rest of you. | realize that many of you know some, 
or perhaps all of this, but it is always good to bring everyone else 
up to the same speed whenever possible. 

The first came about from the inquiry of two separate people. 
The question was "Can | use HD (1.44 meg or 2880 sectors) disk 
drives with my QL that is using a Trump Card?" The answer to 
this question is a qualified one. Normally the answer would be no. 
The QL and the Trump Card would not even recognize that it 
existed. The lone exception to this would be if you had equipped 
this QL with the Level Two Driver. It would then recognize that the 
drive was there, and format and use it as a 720K drive (1440 
sectors). It would still not see it as a 1.44 meg disk drive; the 
Trump Card does not have the needed hardware to do this. If you 
still want to use a 1.44 meg disk drive with either a Trump Card or 
a QL Sandy Board, then you need to obtain the FLP/LEVEL 2 RAM 
CHIP from either Jochen Merz or from Mechanical Affinity. This 
will allow you to use these drives as well as making the QL 
Read/Write and format IBM and Atari disks, and a few other 
goodies. 

The next question was, "Can | use an IBM compatible 1.2 meg 
5 1/4 drive with my QL?" The answer to this would normally have 
been a definite no. If you check with the magazine IQLR, they ran 
an article on how to set up one of these so that it could be read 
by the QL as a 720K (1440 sector) drive, but it could still not be 
used as a 1.2 meg drive. None of the QL disk drive interfaces 
supports the 1.2 meg drive in its native mode. | wish that they did, 
particularly when it comes to IBM software that comes in that 
format. | could then use it with PC Conqueror or Solution. 

The third question | get from many folks concerns, " Just what 
ED (extended density 3.2 meg) drives can | use with my Gold 
Card or Super Gold Card, and how do | set the switches or pins 
on them?" The next page will detail what is needed to set up 
TEAC, SONY and MITSUBISHI ED drives. Do not attempt this with 
CHINON ED drives. So far CHINON does not work with the QL. 

If you find a drive that works that I left out, let me hear from you. 
The more we help each other the more we gain. 


36 


I wish to thank the following for the information contained here. Stewart 
Honeyball of Miracle Systems, Paul Holmgren of Mechanical Affinity, John 
Toapelliiceys and Don Walterman of the Detroit area, and Bob Dy! of IQLR. 
Thanks for the information. 


SONY ED DRIVE -- MP-F40W-23 and MFD-40W-21 are the two model 
numbers that have been shown to work with the Gold Card and the Super Gold 
Card. The only setting available on these drives is the drive number, a recessed 
switch at the rear side of the disk drive, as shown in this illustration. 


Recdssed Switch 
o12ad 


MITSUBISHI ED DISK DRIVE--It has the drive numbers 0 to 3 on one side 
towards the rear, and has the jumpers that must be set as in the diagram on the 
other side near the rear of the disk drive. 

drive number 


mL sw I/s 


TEAC ED DISK DRIVES--Set the drive jumpers as indicated in the 
illustration, and the drive numbers on the side, for the FD235] 3631 and the 
FD235] 3653. 


TEAC FD235J 3631 TEAC FD235J 3653 
MODIFIED MODIFIED 


SIGNAL 
LEVEL 


XTRICATOR, Version 1.75 
by Gary Norton 


XTRICATOR, by Dr. Carlo Delhez, is a Z2X-81 (T/S 1000) emulator for the QL, 
offering 64 KB of RAM. XTRICATOR runs in the Pointer Environment, is 
SerMouse compatible, and is multi-tasking. 


XTRICATOR is a shareware program, available free for testing. As with all 
shareware software, if it is to be regularly used, you need to register with 
the author. The registration fee is 60 Dutch Guilders or 40 US $. With the 
registration, you receive a twenty-five page manual, three disks of ZX-81 
software containing 240 programe (original as well as commercial), a free 
update to the next version of the emulator, and information about later 
releases. 


To run XTRICATOR, you will need a QL or clone, 300 KB of free RAM, Toolkit 
II (optional, but recommended), and the Pointer Interface Environment file 
PTR_GEN (not included with the program due to copyright). Though not 

required, I highly recommend that the Gold Card or Super Gold Card be used, 


When run on a standard QL, the program runs painfully slow, but will run. 
Expect a speed of about a third of a ZX-81 in SLOW mode. Whereas with the 
Super Gold Card, it runs at over twice the speed of the original 2X-81. 


XTRICATOR runs in all resolution modes of QXL, but it does not yet run on 
machines running SMS2, but that is being worked. 


If you're using a QL, then why would you want to emulate the 2X-81? Many of 
us began our home computing with the ZX-80/1 and discovered the fascinating 
world of computing. 7ZX-81 owners discovered much about computers and 
programming by trying to get every ounce of power from the computer. We 
all went through the frustrating times of the system crashing when we were 
about to save a program we just spent two hours typing. But it kept us 
interested in computing, and most have fond memories of this little machine. 
When the T/S 2068 or the QL came along, many of us moved on, packing the 
ZX-81 into a box in the closet. Others remained faithful to the ZxX-81 - I 
have mine set up next to my two QLs. 


If you had a ZX-81 that didn't crash, had internal 64 KB RAM (no memory pack 
wobble), had a (quasi) real keyboard instead of a flat membrane, and had 
fast disk drives, would you have been as eager to replace your computer when 
a new model was released? You get all this, and fast speed as well with the 
Gold Card or Super Gold Card. Later, I'll touch on several 
additions/enhancements added that will bring the 2X-81 to another level. 


The program disk contains a file ‘XTricator_Xample_Boot'. Edit this to your 
boot-up requirements. When XTRICATOR is being executed, you have the option 
of automatically setting the parameters you wish. The parameters allowed at 
start-up are: /I gives a black screen and white print; /R selects the 
initial contents in the 8-16K area, Clear, ZX-Assembler-2, or Coral Basic; 
/S selects initial size of the RAM memory, and /W selects a half wide screen 
display. 


When loaded, XIRICATOR loads a white screen with the familiar ‘K* cursor 
No more fuzzy BW television images for the ZX-81! If you would prefer a 
black screen with white print, simply press CTRL & F2 (or F12 for those with 


38 


a Falkenberg QL-Keyboard-90). To revert back to black on white, press CTRL 
& F2 again (or F12). 


With a few exceptions, when running XTRICATOR, use it as you would the 
ZX-B1. You'll recognize the one press Keywords. Press 'R' for RUN, for 
example, To load a program, press 'J' for LOAD then either SHIFT P, as in 
the ZX-81 or the Quote key next to the Enter key for the Quotation mark, 
then the program's name, then another quote: “LOAD “PROGRAM"’. Do not press 
"LOAD " Instead of loading the first program that is contained on disk, 
as the ZX%-81 does with its tape loading, this command gives the directory of 
the disk in the default drive. The same rules apply for keyboard operation 
as with the ZX-81, This includes the Function and Graphics modes also. If 
you have problems remembering the location of the keys or what function is 
located on which key, press CTRL & Fi or Fil to view a digitized image of 
the Z2X-81 keyboard. This can also be selected by the ‘H* option of the main 
menu. Press ESC or press the left button on the mouse to return to the 
gereen, There are two key emulator modes, using CAPS LOCK or not. These 
simply give different characters with certain keypresses, basically either 
the ZX-81 layout or the QL layout 


The feature that really sets XTRICATOR apart from the original ZX-81 is the 
Main Menu. This {is selected by pressing Fi. The menu consists of twelve 
selections. To make a selection, point and click with your mouse or press 
the letter given and then enter. This article is not intended to make it 
unnecessary to register and receive the manual, so I will only highlight the 
menu options. The primary options allow for changing defaults such as 
LPRINT output (to SER1 or to a file) and default directory. Make 
screendumps that can be loaded from SuperBasic or from ZX81 mode. Reset the 
ZX81. Unlike on a ZX81i, you don't have to disconnect the power supply to 
reset. Load ZX-Assembler-2 (ZXA2) or Coral Basic Interpreter (CBI) [more on 
these later] into the 8-16K area of ROM. Change screen settings such as 
color (black or white), the refresh rate, set the emulator speed, and select 
between full size or half size screen width. For QXL users, move the ZX61 
window to wherever you'd like on the screen. 


XTRICATOR supports several different resolution modes. These are the Low 
Resolution or normal mode, with a 32x24 screen; Extended Low Resolution, 
with a 32x192 screen; Semi High Resolution with 256x192 graphics; and True 
High Resolution with 256x256. The command to move between hi-res and 
low-res is supposedly CTRL-F3, however, with my copy of XTRICATOR, I was 
unable to load a hi-res program. I kept getting the message "RAMTOP NOT 
LOWERED". This in spite of pressing CTRL-F3. Unfortunately, the manual 
does not mention this or what to do about this situation. 


As mentioned earlier, additions and enhancements were provided to bring the 
ZX81 to another level. Starting with the Special Commands. In Version 1.75 
of XTRACATOR, there are fourteen of these commands. They are loaded like a 
file, but the command name is preceeded with an * and ended with a :. Since 
the ZX&1 operating system does not have a Disk Operating System, the Special 
Commands, add the necessary commands to operate from disk, They allow a 
disk directory to be shown as well as movement through the directory. 
Subdirectories are allowed to be created, removed, and made the default. 
Files can be deleted, the default drive can be set, and Jobs can be killed. 
Also, special files can be saved and loaded. 


SIMDOS2 is a RAMDISK driver file that adds a few other commands and gives a 
simplified command structure, such as LB:<filename>: which loads a BASIC 


program, No manual is provided, but in the ProgInfo_txt file, there is 
sufficent information to use this driver. 


What truely sets XTRICATOR above the ZX81 (and many other computers as well) 
is the supplied Coral Basic Interpreter (CBI), written by Carlo Delhez,. 

When running in CBI mode, the first things you notice are the K cursor turns 
into a solid black (or white) cursor and the command words have to be fully 
typed in. CBI comes with a 16 page TXT file manual on disk. To quote from 
the manual, "It combines the efficiency of a new and fast Pseudo Screen 
Editor with the ease of a powerful extension of the ZX81 BASIC." Regular 
ZX81 programs will run in the CBI mode. Since CBI warrants an article of 
{ts own, I'll just say, give it a try, you may never go back to the 2X81 
BASIC, 


To those who register, on Library Disk 1 there ts another ZX81 BASIC 
extender, EXTENDED BASIC, by Frits Beniest. This BASIC extender allows you 
to add READ and DATA statements, adds the RESTORE command, as well as LEFTS, 
MIDS, RIGHTS, Multiple statements may be on the same line. Graphics are 
brought up to the TS-2068/Spectrum level with DRAW, UNDRAW, CIRCLE, 
UNCIRCLE, FILL, PAPER, UNPAPER, A few other commands are also provided as 
well as existing ZX8i commands enhanced. There's also a nifty demo program 
that lets you see things you never thought you'd see on a ZX81. EXTENDED 
BASIC gives the ability to easily translate programs written for other 
BASICS. It nicely adds features not included on the original BASIC, and 
gives another alternative to CBI, but unfortunately a TXT file manual is not 
included. With either CBI or EXTENDED BASIC, you'll never want to go back 
to basic ZX81 BASIC! 


Another included file is ZX-Assembler-2, revised by Carlo Delhez. The 
ProgiInfo_txt file gives sufficient information to get the Assembler loaded, 
but a TXT manual is not provided. One is, however, available upon request. 
I don't have the manual and am not familiar enough with this program to 
comment. 


One oddity I discovered was when the LPRINT output channel was selected, the 
mouse stopped functioning. When this was cleared the mouse became 
operational again. In the next version of XTRICAATOR I would like to see 
this corrected. 


I'm greatly impressed with XTRICATOR. Its a superb piece of programming 
with a great deal of effort put into it. The price is right, free, but I 
would strongly recommend paying the small amount asked for to register your 
copy. With the library disks provided, there is enough programming to keep 
you occupied for some time. If you have some favorite ZX81 programs you 
would like to transfer from tape to disk to run on XTRICATOR, Dr. Delihez can 
provide QZ Fileserver to do the job. There is a disk provided to run on the 
QL and a tape to run on the ZX81. To do the transfer, you'll need a serial 
interface, A schematic can also be provided by Dr. Delhez that shouldn't be 
too difficult for someone to construct if they're knowledgeable in this sort 
of thing. Unfortunately I'm not, so have been unable to give this a go, but 
if I can overcome my handicap in this area, I plan on transferring several 
tapes and will report on the operation of the fileserver. 


40 


A REVIEW OF QLerk by Eliad P. Wannum 
A Financial Program for the QL 


‘There have been several finance programs brought out for the QL since the year 1983, but none 
that I have felt was good enough to use Sor the middle-class home or for the small business (earning 
less than $500,000 per year). I felt that way until Frank Davis gave me a review copy of QLerk to 
look at and try asa means of keeping track of my financial records of my counseling business. I have 
noticed that even Frank has gone to using it for Mechanical Affinity, and for UPDATE! Magazine. 
He had been using either an old TS2068 program or one from his Amiga. He had always said that 
the programs for ‘A nancial management on the TS2068 and Spectrum were as good as those for the 
QL, and easter to use. He has now, as well as |, changed his mind. This little story of using this 
program was done off of Version 3.21, which was released on September 14, 1994. 

This program requires you to use either Psion XCHANGE (now in public domain) or 
ARCHIVE, 2.38 (supplied with the program). Bill Cable, author of the program, says that his 
preference is using ARCHIVE, as it does not have the same memory limitations as when startin 
XCHANGE. | tried using XCHANGE and bad no problems, but | used only a relatively smai 
database at that time, so perhaps this problem would have shown up later. You should have at least 
2. 720K disk drives and a Trump Card to make adequate use of this program. The program really 
comes into its own when used with a QXL Card, Gold Card, or a sper Gold Card. A hard drive 
and ED disk drives make the program even that much more useful. For reasons of money, these 
devices make sense, the less time a business spends at the screen, the more time is spent on the 
business, and not on the financial house keeping chores of mailing lists and billing. 

ve what can you do with this program? Well, you can at the same time keep track of upto 5 
check writing accounts from a bank, and Bill says that there is no limit to how many charge 
accounts you can keep track of. | only have 7 credit cards and found it quite easy to use the program 
to track these and my two checking and one savings account. | know at all times who is in my 
database of clients and have at a glance information on billing them for services. When I want to 
doa mailing to clients, suppliers and lors I do business ith: the print facilities allow me to do 
this ina generally business accepted manner. It works great with my HP Deskjet printer. I have not 
tried it with my Canon Bubbleet yet, as it is off for repair. 

The statements I have generated with this program and given to my accountant have 
wipeeet her, as she swore they bad to have come from an expensive MAC or IBM program. 1 had 
to have her over to the office to see just what control | actually bad over records and the ease with 
which it was done. I just may get a QL put to use in her office yet! She tells me I should , at tax time 
be able to give her all the records | peed to prepare both my ‘onal and business taxes. She gave me 
only one barrier to stand in the way of doing this. THE ONLY THING THAT CAN GO 
WRONG IN THIS AREA IS FOR THE USER TO FAIL TO KEEP UP WITH ENTERING 
THE DATA, It is just like vitamins or medicine, it does you little good to have them, if you do not 
use them when you should. 

The program needs to be configured for your system when you get it. The well supplied manual 
tells you what to do tn order to set up the program for your paride uses. You can always amend 
your set up or add items, such as new names or addresses (as well as changes), on the fly. T have had 
two manuals for this program, the first was 8 1/2 by 11 inches in size, the next was 6 1/4 by 8 1/4 
inches. While the print 1s clear and of a readable font in the new version, some of the print was 
rather small and may be bard on the eyes of some. 

One limitation to keep in mind, is that due to this being an ARCHIVE based program you 
will have a 2,000 record limitation if it is ordered on two fields. There will come a time that you 
may need to keep more than one record, or you can use the QLerk process REMASTER to remove a 
iar of old records. This is also still a DATABASE type program, so for those who have never 

ad the nerve to approach one of these, you ipiaes it needed on at least a limited basis. 

If] was a movie reviewer 1 would give this program a thumbs up. I hope in the next issue of 
UPDATE! to tell you more about this useful, USA made program. Check the ad in this issue. 


41 


REPORT ON THE DAYTON COMPUTERFEST IN AUGUST 
by Frank W. Davis, Editor 


For the 6th year in a row now, we at Mechanical Affinity, and 
for the 5th year for UPDATE! Magazine....found our way to the 
Hara Avena in Dayton, Ohio on the last weekend in August. It 
always requires far more work to get to the show and set up than it 
may appear, what with banners, catalogs, pricing items, etc. So, do 
I think it is worth it? Yes. 

It is shows like this and the Miracle in Newport show that give 
us our best chance to get together with a large crowd of QL, Timex 
and Cambridge Z88 users each year. It helps put a face to go with 
the voice and letters that we get from so many subscribers and 
mail order customers. I have become personal friends with many 
of you, and am grateful for having done so. All ve the people I have 
met have in some way or another enriched my life. Thanks. More 
than once I have ree where some "so-called expert" has talked and 
said that computer users were people who got wrapped up in their 
machines and lost social skills. I have met only a few people who I 
think fall into that category. For most of us, it has been a learning 
experience that has caused us to meet and interact with many 
people we would otherwise never have met or talked to. 

Thanks to Gary Ganger and to all of the support that Dayton 
Microcomputer Association gives for the production of this large 
scale show that they put on each year and for setting aside part os 
for Sinclair dealers. Socially and financially it was rewarding. 
Thanks to the ea iii SMUG, Neal and Bill for being there each 
year with your tables next to ours. Thanks to Don Lambert and 
Bob Swoger for having your table on the other side of us for 
TSNUG. And thanks for the last two years to Tim Swenson for 
putting on such a great picnic Saturday evening, giving all of us 
time to meet and socialize away from the show. 

Shows like these are fun, and a chance to buy from a large 
selection at bargain prices. It brings out the "old Hoosier horse 
trader" in me. I hope to see you there next year. 


42 


PAA AAR ARPAAPAAAA AAA PAPA PAA AHAAA Av: AAAHAARPD AH AAA AAAGHFAPAPHAHAFHANGAANYH 


PRESENTING @QLerk 


A FINANCIAL PROGRAM FOR THE SINCLAIR QL 


By 
Wood and Wind Computing : Bill Cable : RR3 Box 92 : Cornish NH 03745 
Phone : (603) 675-2218 


For the first time you have the capability of keeping complete and accurate financial records for 
the Home or Small Business with your QL. A friendly Financial Clerk to serve you. The code is 
written in the ARCHIVE Programming Language and is completely accessible to the user. All 
functions are selectable from standardized menus. No knowledge of ARCHIVE is required. The 
program works from a common sense point of view without imposing accounting theory on the 
user. Although it has many powerful features the user can use only those features desired, 
ignoring the rest. Recommended minimum system is a Trump Card with 2 DD Drives. It works 
much faster on Gold Cards and Super Goid Cards. Latest Version is 3.21 


Pays Bills Receives Income Reconciles Bank Accounts 
Makes Invoices Makes Purchase Orders Prints Checks 

Prints Address Labels Handles Sales Taxes Handles Income Taxes 
Does Payroll Keeps Inventory Handles Periodic Payment 
Periodic (Cyclic) Payments Periodic (Cyclic) income Maintains Savings Accounts 
Maintains Cash Accounts Maintains Charge Accounts On-line Help 

Elaborate Data Protection Easy Built-in Data Backups Easy Data Correction 
Category Report (why,when) Activity Report (who, when) and much more 

PRICING 

Public Domain Demonstration Version of QLerk $5.00 US/Canada 
(refundable if QLerk latter ordered) $7.00 Elsewhere 

QLerk Program on Disk with Tutorial Doc File $29.00 US/Canada 


$31.00 Elsewhere 


QLerk Manual (150 pages of details) $29.00 US/Canada 
$34.00 Elsewhere 


QLerk Program with Tutorial and QLerk Manual $50.00 US/Canada 
$57.00 Elsewhere 


The Demonstration version will allow you to play with most of QLerk’s features so you can decide 
if you really want the program. Some features are absent and the code is not inspectable. The 
program with Tutorial is the complete program with inspectable code and enough instructions to 
try out the basic features of QLerk. It is sufficient for users with simple needs. The QLerk Manual 
is indexed and covers ali features in detail for those with more complex needs or with an interest 
to know all the details. Order it today increase the usefulness of your QL dramatically. 


SESESFSSSSSSSISSSSSISHSSSSSSSSSSISSSSIFSISSSSSSSSSSSSS$SSSSSHSSSSH$SSFSHSHFSHIFHSHS: 


SSSDRSSSSESSHODSSE SASH DEE SNTSSS SeDTR POOP NUON Tee a rsoEnE Nye rRE Onn 


$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 


Z—-88 FLO-—-CHART  (C) 1989 MIKE FINK 
ACTIVATE 


PANEL FiLe 


Z-88 
PANEL PRINTER ED'R —p4 
COMPUTER 


ACTIVA T! 
COMPUTERS PRINTER 


DISK DRIVE 
or EPROM 


LOAD 
SAVE 


THEMINAL 


LOAD 
SAVE 


FASS 


PIPEDREAM LEAD FILER SEND MODEM 
RECEIVE 


FAX O2 OTHER 
COMPUTERS 


RE<eive EXPORT 


USE -MOoDIEY 


AILe NAMES 


USE - Modi’ 
PRINT ONLY 


PRINTER ACTIVATE 


CORAPUTERS PUNTER 


ANY DATA, TYPED INTO PIPEDREAM, DIARY OR PROGRAMS IN BASIC, WILL 
AUTOMATICALLY BE TEMPORARILY SAVED IN SUSPENDED ACTIVITIES, WHEN 
GOING FROM ONE APPLICATION TO ANOTHER. TO SAVE A FILE PERMANENTLY, 
IT MUST HAVE A NAME AND BE SAVED TO THE FILER. DATA TYPED INTO THE 
PANEL CAN BE ACTIVATED IMMEDIATELY, OR SAVED AS A FILE, OR BOTH. 

PRINTER EDITOR MODIFICATION MUST BE ACTIVATED TO BE USED, OR CAN 
EXIST UNACTIVATED AS FILES TO BE LOADED OR SAVED (OR ACTIVATED). 

FILES FROM PIPEDREAM, DIARY AND BASIC CAN BE SENT TO A PRINTER FOR 
PRINTING, EVEN IF THEY HAVE NOT BEEN NAMED AND SAVED. FILES FROM 
THE FILER TO THE THE DISK DRIVE, CAN ONLY BE SAVED OR LOADED, TO USE 
OR EXECUTE THEM, THEY MUST FIRST BE LOADED INTO WHERE THEY CAME 
FROM. 


44 


FOR THOSE PEOPLE THAT DESIRE A PORTABLE COMPUTER, OR NOTEBOOK COMPUTER, 
THAT IS LIGHT, INEXPENSIVE .. AND DOES NOT REQUIRE THE USER TO BUY ANY 
SOFTWARE, THE Z88 EXISTS FOR THEM. LUCKILY, IN THE UNITED STATES, THERE 
IS A COMPANY CALLED DOMINO CUBES, THAT HAS CREATED ADDITIONAL FEATURES 
FOR THE Z88, THAT MAKE THE POWER OF THIS COMPUTER MORE FORMIDABLE THAN 
IT ALREADY IS, AND ARE NOT AVAILABLE AT ANY OTHER PLACE IN THE WORLD !! 


A PARTIAL LIST FOLLOWS; 


1. A 960@ BAUD FAX/MODEM, THE ONLY FAX/MODEM IN THE WORLD THAT NEEDS 
NO SOFTWARE! IT WEIGHS 7 OUNCES AND IS THE SIZE OF A PACK OF 
CIGARETTES. 
A BATTERY OPERATED 2 LB. PORTABLE DISK DRIVE. 
A BAR-CODE READER. 
A 1 LB. "BATTERY PAK" THAT WILL RUN THE Z FOR 3 MONTHS. 
REPAIR SERVICE. 
UNDERSTANDABLE MANUALS WRITTEN BY MIKE FINK 
THE ONLY MAIL MERGE PROGRAM THAT WORKS! 
A SHIRT POCKET EPROM ERASER. 
TWO TYPES OF EDITING PROGRAMS WHILE IN BASIC. 
a.A THIRD TYPE OF EDITING FOR BASIC USING PIPEDREAM. 
10. A PRIME NO. PROGRAM UNIQUE TO THE WORLD. 
11. A MONEY TABLES PROGRAM OFFERING ANSWERS TO ALL QUESTIONS INVOLVING 
TIME, MONEY AND INTEREST. 

12. MANUALS EXPLAINING FORMATTING AND PRINTER EDITOR WAYS NOT FOUND IN 
ANY OTHER MANUAL OR PUBLICATION. 

13. A SPELLING CHECKER, (FROM ENGLAND). 

14. THE ABILITY TO MAKE MULTIPLE COPIES AND HOW TO USE MACROS. 
a.AN INTERNAL MAGICAL REMOTE CONTROL ROBOT! «!x«!e! 

15. A PROCEDURE TO ALLOW LOADING ALL EPROM FILES WITHOUT DANGEROUS CLI 
FILES BEING CREATED IN :RAM.~- (WHICH CAUSE FAILURE) 


WOAH RON 


TO RECEIVE ALL OUR LITERATURE AND A PRICE LIST, SEND $3 IN STAMPS OR 
CASH (no checks, please) THE $3 WILL BE RETURNED AT YOUR FIRST ORDER. 


MAIL ADDRESS IS: 130 W. 42nd ST. 28th FLOOR, N.Y. CITY 10036 
FAXES CAN BE SENT TO 212-869-1526 


MIKE FINK PRESIDENT OF DOMINO CUBES 


Z88 Rom and Internal 


Ram Upgrade 


by Dave Bennett 


The Z88 Users’ Ciub in England is no 
tonger viable. Membership had fallen 
to 1000 members from 4000 members. Roy 
Woodward decided to discontinue the 
Group. He is still providing support 
for the Z88 in a business calied 
Woodward Technology. 

Roy is selling back issues of the 
Club Magazine 'Z88 Eprom’. The Club 
also sold 288 parts. Roy is selling 
some of these including Version 4.0 
Roms and larger size internal Rams. 

had ordered a Version 4.0 Rom and 
a 512K Internal Ram last year. | 
waited months and months for them to 
arrive. | talked to a couple 288 users 
in the U.S. who told me it was best to 
call Roy. | finally called him in 
April. 

Apparently he could not get 512K 
Rams. This was holding up the order. | 
said that | was willing to accept a 
128K Ram. The 128K Ram is also cheaper 
and easier to install. The Ram and Rom 
arrived a couple weeks later. It was 
another couple weeks before | 
installed them. 

Installing the Ram and some Roms on 
a small number of Z88s requires 
soldering and desoldering. So | would 
not attempt this yourself unless you 
are comfortable soldering circuit 
boards. And you need the proper 
equipment. A low wattage soldering 
iron and a solder sucker are 
essential. If you are not comfortable 
doing this | would have a computer 
repair facility do it for you. 

your Z88 is working fine and you 
have no need for additional internat 
Ram, you may not want to install the 
Ram and Rom at all. The Rom provides 
support for additional internal Ram. 
It also corrects a few bugs such as 
the famous :Ram.- bug. The software 
still works the same. Pipedream still 
is exactly the same. 

The instructions for installing the 
Ram and Rom are very clear and well 
written. itis very easy to remove the 
circuit board. It only takes a few 
minutes. 

The circuit board on the Z88 is 
sensitive to heat. When | desoldered 
the Ram one of the lands came off the 
board. | fixed it with a jumper cable 


> 


made out of a very thin wire strand. 
When | was finished | put the Z88 
partially together. | tried it and 

there was no display. In addition it 

was making a slight humming sound. It 
should not make a sound at all! 

| thought that my 288 was gone. | 
fet it sit around for a few weeks 
without touching it. Finally | decided 
to look at it again. 

was going to remove the socket for 
the Ram and install another one. But 
decided to resolder the old socket. | 
put it together and it worked! 
Everything works on it. However the 
instructions say that you should have 
118016 free Ram. | get 115446. ! 
talked to another Z88 user who 
performed the installation. He got the 
same result. Puzzling! Is it an error 
in the instructions or a typo. Or did 
we both make the same mistake. | am 
not going to worry about it. The 288 
is working fine otherwise. 115K is a 
lot better than the 12K | had before. 

1 did not experience any crashes 
with the Version 2.2 Rom. But this 
upgrade gave me a chance to increase 
the amount of Ram without using up any 
more siots. All three of my slots are 
filled. 

The Rom was 24.95 and the Internal 
DIY 128K Ram was 19.95. Both of these 
upgrades make a fine addition to your 
288. They are both available from 
Woodward Technology, P.O. Box 15, 
Belper, Derbyshire, U.K. DE56 OXE. If 
you pay by credit card the exchange 
rate is automatically taken care of. 


288 This and That 


As far as | know the Z88 is still 
being manufactured in Scotland. | 
wonder just how many Z88s have been 
sold? What is your Serial Number? | 
have an early Z88. Mine is 2996. 

My Z88 tends to give off a lot of 
Radio Frequency Interference or RFI. | 
have noticed that other 288s give off 
much less. Is it because I have an 
early Z88? My Z88 has been opened a 
few times. Could some seals have been 
disturbed causing RF leakage? Does 
your Z88 cause interference to nearby 
TVs and Radios? 


Timex Publication Index _ part 1 
Many moons ago I had to prioritize the many ideas I had for my 
computing projects that were filling my spare time. 


I also had a LOT of Timex/Sinclair publications with tons of neat 
articles that I was interested in doing with my Timex/Sinclair 
machines. 


Since I had a cartridge version of Pro/File for the Timex 2068, (room 
for up to 37,000 bytes of database records) I indexed all the 
listings and hardware articles contained in this 4 foot pile 

This allowed me to quickly find things to do and to answer 
us (if answers were printed) for my Timex projects. The 
results ended up occupying 2 files totaling more than 39,000 bytes 
and filling about 317 record entries. 


File Record Explanation: 


I only listed articles that had program listings or real hardware 
work that I could do. Reviews and simular articles were left out 
because there was nothing there that would directly benefit my 
computing at the time of need. 


I chose to index 7 publications because they contained the most 
information, and I had an average of 90% of the total issues they 
printed. 


So here you are, if you can use this information then this has done 
its job. 


Key to the listings 


The listings were done with the Title or at least the reason for 
inclusion in the index first, followed by a 1 or 2 word clue that 
told me if the article was a program that was type-in-able 
(software) or about a (hardware) modification/fix or improvement. I 
then used a 3 letter key identifing the publication containing the 
article, followed by the issue or volume and lastly some clue as to 
why I listed it if the title was not informative enough. 


The Key used for the Publications: 


SUM = Vols 2-6 to 4-7 
SWN = SYNCWARE NEWS 1-1 to 5-4 
SYN = SYNC Vols 1-1 to 4-2 
TD = TIME DESIGNS 1-3 to 4-4 
TMZ = TIMELINEZ pages 1-8, 17-358, 364-415, 443-458 
TSH = T-S HORIZONS #1 to #21 
TSU = TIMEX SINCLAIR USER Vols 1-1 to 1-7 


USA version 


47 


1000 TIPS 


SYN 


TSH 
TSU 


21 
35 


6 
1-4 


hard 
ZX80 RESET, INVERSE VIDEO 
ROM, RAM 


NVM DISABLE 
REPLACE CHARACTER SET 


1000 & ZX80 TIPS soft 


SYN 


1-2 
13 


logic 

fix for above, CHR$ on more logic, 
simulate PAUSE, convert variables 
fix for above (logic), 

VARS conversions, DIMed arrays 
REM usage, fix for DIMed arrays, 
PEEK & POKE 

MC in REM, more logic using 
Galaxy game 


stBw. 


plotting, 
store 3 words in array 
flag tips, DEF function 
DEF func fix 
"speed up 
"  " "line inputting 
logic operators 


KE fix 
T, INKEY$, ZX80 


array storage 


soft 
EDIT usage 


memory saving 
" " 


set ramtop, fix for load circuits 


trap inputting nos. 
ramtop & Compusa 


string input rout. (Get) 
fix for Die above 


set ramtop 

Strings & things 
simulate PAUSE 
BASIC tips 


cracking AUTO-RUN 
BASIC tips 


Vu-Cale mods & tips 
BASIC tips 
POKEs, PEEKs 
INKEY$, 

assword, hide prog lines, SAVE/ 
PoaD time, print last 2 lines, COPY 
full screen, find print coordinates 
unLIST lines, unlock tapes, MC 


storage, clock unused codes 


_ “#16 program stopper, Vu-Calc mods 
“#20 Files & ? 

TSU 15 mem save, lock up, vary COPY size 
"16 PEEK & POKE 


6 SHOOTER 
SYN 22 8k 


soft game 


16 PIN BOWLING 
TSU 12 1000 
"13 "fix 


soft game 


64 COLUMN MODE soft 
SWN 31 2068 


TD 23 " 


2040 PRINTER hard soft 
SWN 26 make work with MemoTech 16K 
"41 Remove caps 
SYN 42 & ROM bugs 
TD 31 printer instead of display 
"42 teas cable 
TMZ 66 offfon 
"73 fix for above 
“234 2068 offfon 
"256 on/off switch 


2050 
TD 41 


hard 
Spectrumize 


2068 GAZER'S GUIDE soft 


TD 21 astronomy 


2068 TIPS soft 
Sum 311 SAVE,SCROLL, LOAD INKEY$, 
INPUT 
"44 OmniCalc 2 
SWN 26 INPUT prompts 
* 31 " iy extra 
print using MC 
fix for above 


Poly-Scroll 

simulate PAUSE 

inputting Ep. tips cracking progs 
KEs, BI SCROLL, CAPS, 

DELAYS, SCREEN 

cracking, BIN 

store MC, Passwords 

"197  oW 


"135 all kinds 


"144 INKEYS. VARS 
* 172 timer, VARS 
"234 screen save, POKEs, invert display, 
print full screen 
"234 POKE BORDER color, ramtop 
without CLEAR, time, POKEs, 
odd/even, darken display, 
dbl. space LISTings 
"235. store nos. as characters, time 
"311 INK tips 
TSH #7 Displays, 22 & 23 line Scroll, POKEs, 
Flags, BEEP 
“#11 Screen LPRINT 
"#12 OPEN#, CLOSE# 
“#17 many POKEs 
"#18 fix for POKEs #17, pixel screen scroll 
TSU 16 display primer 
ABC-123 solt game 
“ SWN 43 1000 game 
"44 * "pt? 
"45 bug fixes 
ACEY DUCEY soft game 
SYN 1-1 ZX80 
ADDITION soft 


SWN 5-5 2068 math tutor 


ADVENTURES IN THE RAM JUNGLE 
TD 16 explore RAM structure 
"241 corrections, pt 2 
"22 1000 based, pt 3 
"23 fix's for 22 


soft 


ADVENTURE 
SYN 13 ZX80 


soft game 


ALIEN LURE 
TSU 1-2 1000 


soft game 


ALIEN TREASURE 
SYN 24 


"95 


soft game 


fix 


ANIMALSLLL 
SWN 46 animal quiz 


soft game 


49 


ARTILLERY soft game 
SYN 12 ZX80 

"1:3 fix for above 

“odd 8 ML (2) 

"1-6 another 
AUDIO FREQ COUNTER soft 
SWN 31 1000 

“33 "bug fix 
AUDISY soft 
SYN 36 _ store sound in 1000 
AUTO ANALYSIS soft 
SWN 34 1000 
A & J ENHANCEMENT soft 
Sum 34 Tasword 

“3-1 Tasword, VU-Calc 
SWN 3-5 notes 
TD 36 file manager 
TMZ 30 = 1000 

"114 Tasword & 

"129 2068 cat prog 

"144 Tasword 

"170 CPI tips 
TSH #14 SAVEing LOADing 

"#16 " " 

"#18 tips 
BANK SWITCHING 1000 hard soft 
TSH #4 ptl 

"45 "9 

"#6" 3ptl bug 

“#7 "4 

"#9 "5 

"#10 "6 

“  #1b "7 

"#12 " Blast 

“#16 bug fix pt 7 
BANK SWITCHING 2068 hard soft 
SWN 23 add 128K & decode EXROM 

"3-4 OUTs explained 

"36 using extra banks 
TD 25 ptl 

"26 "2 

"31 "3 

"32 "4 

“33 " 5, end 

"45 
TSH #19 ptl 


"#20 pt2 
"#91 pt3&4 


BANNER soft 
Sum 45 both 
SWN 24 1000 
SYN 26 large Ictters on screen 
TMZ 244 2068 mini/maxi banners 
TSH #10 1000 
"#11 2068 bug fix 
TSU 13 2068 


BASCII soft 

TMZ 251 convert BASIC to ASCII file 
“257 fix for above 

Tt 31°" * 


BASIC soft 
Sum 31 Beginning BASIC pt 1 
" nwo 
"33 " 4g 
"34 " woomg 
TSU 1-2 How to Program pt 2 
"on " "3 


BATTLESHIP 
SYN 21 ZX80 


BEETHOVEN 
TSU 1-1 music from the 1000 


soft music 


BETA BASIC soft 
SWN 56 tips & utils 


BINOMIAL BINGO 
TMZ 225 1000/2068 


soft game 


BINOMIAL DISTRIBUTION 
TSU 1-4 1000 


soft game 


BIT GRAPHICS soft 
SWN 46 _ for big printers 


BIT TESTING soft 
SWN 23 depict 255 bit patterns 2068 
TMZ 104 1002068 


BLABBERMAN 
TSU 16 1000 


BLACK HOLE 

SYN 13 ZX80 
"14 fix for above, (3) 
"45 uw om 


BLINKER 
SWN 53 blinker code 2068 


BLOCK DELETE 
SYN 32 1000 
TD 41 Spectrum 


BOULE 
SYN 42 


BRICK BUSTER 

SYN 35 
"36 fix for above 
"41 mods 
"42 fix 


BUILDING HEAT LOAD 
SYN 26 


BURGLAR ALARM 
TD 23 2068 
"94  "  fix's 


BUS EXPANSION 
Sum 21 Spectrum to 2068 
SWN 35 ob6 


CALCULATING THE DAYS 


SYN 31 


CALENDAR 

SYN 31 figure the days 

TMZ 86 Perpetual | 
"Qs "9 
"og noon 


CANNONADE 
SYN 15 ZX80 


soft 


soft game 


soft 


soft 


soft game 


soft game 


soft 


hard soft 


soft 


8 prog to draw bus for cart board 


soft 


soft 


soft game 


TS2068 UPDATE ISSUE DISKS 


These disks contain at least one major piece of software written 
specifically for disk drive and are guaranteed to be worth the money. 
The rest of the disks are usually filled with various utility programs 
taken from the issues of UPDATE, shareware or public domain. On most 
of these, half the money goes to the author and is meant to encourage 
new programming for the TS2068 that makes use of the various disk 
drive systems. To have your particular disk system supported here 
requires that someone write or alter the software from one system to 
the other. We are always open to your help and suggestions, but have 
limited time and programming resources available here. The prices are 
as listed beside each piece of software. We can provide all but 3" 
disk formats as far as size and disk density. We accept cash, checks, 
money orders and C.O.D. 


1) THE WIDJUP COLLECTION, contains most of the popular programs 
formerly offered by WIDJUP and written by the late Bill Pedersen. This 
is a two disk set, and does not include his CAD Program. It contains 
editors, printer drivers, games,TS2068 tutorials, etc. This is a new 
release and we will have more about it next issue. In Oliger or Larken 
disk formats. The price is $20. 


2) WIDJUP’S CAD PROGRAM, a‘long time favorite that will give you 
professional results from your TS2068 in the area of computer aided 
design and the development of printed circuits. With the right 
graphics it has been also used to print a page for desk top 
publishing, or computer art. It requires no expanded memory and is 
available for the following setups: (a) Oliger, for either the 
Olivetti Ink Jet printer, or for IBM compatible printers. (b) Larken 
for IBM compatible printers or for the Olivetti Ink Jet printer. 
Please specify disk size, format and printer type. The price is $20. 


3) OLIGER DISK DRIVE BBS PROGRAM, this creates a single user BBS 
program, with several message bases, E-mail, and SYSOP Chat area. We 
have also added many other Oliger disk programs to this collection, as 
well as some playtime. This was written by Paul Holmgren. The price is 
$20. 


4) 24-PIN BIT IMAGE GRAPHICS FOR 24~-PIN OR BUBBLE JET PRINTERS, for 
Epson emulation modes, by Larry Crawford. This program takes the 
mystery out of graphics and some of the newer printers out there on 
the market. We also include some extra software with this one, and for 
just $15. {ft is available in Larken and in Oliger disk formats. 


Needless to say we are always interested in a new issue disk we can 
present here for our readers, so those who are out there writing 
programs, send them to us to look at. This helps to keep the TS2068 
alive. It is also a way to pick up some pocket money. We usually make 
royalty payments twice a year based on previous sales. 


QL UPDATE ISSUE DISKS 


These disks contain at least one MAJOR piece of software 


written specifically for disk drives and are guaranteed to be 
worth the money. The rest of the disk space is filled with various 
utility programs, or support files either for the major p of 
software or from various issues of UPDATE. Some files are taken 


from public domain or shareware if deemed of sufficient use. Half 
of the money goes to the contributor of the issue disk on a bi- 
annual basis. The rest goes to UPDATE to support the issue disk 
program. All are $20 US$ , except where noted. Add $5 US$ extra 
for shipping outside of North America. All known QL disk formats 
are supported; please tell us which you need. 


1) HARTUNG UTILITY ISSUE DISK- Here are some excellent 
programs, such as a stand alone database, Address and QSO files. 
All are written in SuperBasic. This gives lots of programming 
hints and tricks for QL programmers. This has been recently 
updated and improved by Bob Hartung. The Address File can be used 
as an Inventory program, or use it to print out labels. Both paper 
or screen printout can be Alpha sorted or by last name. $15. 


2) CABLE ARCHIVE ISSUE DISK- Written by Bill Cable. Contains 
many useful ARCHIVE programs that work on any Archive database. 
Titles include: DIR (directory within Archive), SCAN (quick 
database display and print), FREQ (frequency distribution of a 
field), SPLIT (split 1 database display and print), JOIN (join 2 
databases into 1), REFIELD (redefine field names), KEPLACE 
(replace text within a database), MATCHER (find dupes within a 
database), WINDEX (word index any text file), GROUP 1 to 3 (useful 
procedures from UPDATE articles), QUERY (interrogate any 
database). Also includes extensive DOC files about the programs 
and ARCHIVE in general. The price is $20. 


3) QLUSTER 55109 ISSUE DISK- A great program from Al Feng to 
provide you with many utilities to handle & unclutter your disks & 
MDVs (and it now supports sub-directories). Some of the features 
concern COPY, DELETE, FORMAT, VIEW, as well as extended use of 
some of the TK2 commands (TK2 needed for this program).The program 
is TURBO compiled for a speedy program. It is MINERVA compatible, 
multi-tasks and allows you to use minimal keypresses to do the 
job. The price is $15. 


4) QLUMSI DOS 4.30 ISSUE DISK- The latest version of Al Fengs 
extensively updated MSDOS simulator and front end program for the 
QL. Other programs on the disk enhance file management and cloning 
of other programs. Educational and useful. The price is $20. 


5) QLAMBer- Al Fengs latest issue disk. He calls it A- Moving- 
Box/enhancedrelease. This greatly extends the selective file 
management capabilities of the QLUTter program by additionally 
accessing six TK2 keywords, while reducing CODE size, easily 
supports sub-directory access, and easily multi-tasks within QRAM 
or Taskmaster. TK2 must be on ROM or loaded prior to start up of 
program. The price is $15.